home *** CD-ROM | disk | FTP | other *** search
MacBinary | 1991-12-09 | 42.3 KB | [ TEXT/EDIT]
open in: MacOS 8.1
extracted
|
Win98
extracted
|
DOS
extracted
browse contents |
view JSON data
|
view as text
This file was processed as: MacBinary
(archive/macBinary ).
Confidence Program Detection Match Type Support
10%
dexvert
MacBinary (archive/macBinary)
fallback
Supported
1%
dexvert
Text File (text/txt)
fallback
Supported
100%
file
MacBinary II, inited, Mon Dec 9 17:30:10 1991, modified Mon Dec 9 17:30:10 1991, creator Macintosh Edit, type ASCII, 42613 bytes "dissbits.asm" , at 0xa6f5 490 bytes resource
default (weak)
99%
file
data
default
74%
TrID
Macintosh plain text (MacBinary)
default
25%
TrID
MacBinary 2
default (weak)
100%
siegfried
fmt/1762 MacBinary (II)
default
100%
lsar
MacBinary
default
id metadata key value macFileType [ TEXT] macFileCreator [ EDIT]
hex view +--------+-------------------------+-------------------------+--------+--------+ |00000000| 00 0c 64 69 73 73 62 69 | 74 73 2e 61 73 6d 00 00 |..dissbi|ts.asm..| |00000010| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........| |00000020| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........| |00000030| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........| |00000040| 00 54 45 58 54 45 44 49 | 54 01 00 00 00 00 00 00 |.TEXTEDI|T.......| |00000050| 00 00 00 00 00 a6 75 00 | 00 01 ea a5 69 9e f2 a5 |......u.|....i...| |00000060| 69 9e f2 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |i.......|........| |00000070| 00 00 00 00 00 00 00 00 | 00 00 81 81 2e 13 00 00 |........|........| |00000080| 3b 0d 3b 20 20 70 72 6f | 63 65 64 75 72 65 20 64 |;.; pro|cedure d| |00000090| 69 73 73 42 69 74 73 20 | 28 73 72 63 42 2c 20 64 |issBits |(srcB, d| |000000a0| 65 73 74 42 3a 20 62 69 | 74 4d 61 70 3b 20 73 72 |estB: bi|tMap; sr| |000000b0| 63 52 2c 20 64 73 74 52 | 3a 20 72 65 63 74 29 3b |cR, dstR|: rect);| |000000c0| 20 65 78 74 65 72 6e 61 | 6c 3b 0d 3b 0d 3b 20 6d | externa|l;.;.; m| |000000d0| 69 6b 65 20 6d 6f 72 74 | 6f 6e 0d 3b 20 72 65 6c |ike mort|on.; rel| |000000e0| 65 61 73 65 3a 20 31 35 | 20 73 65 70 74 65 6d 62 |ease: 15| septemb| |000000f0| 65 72 20 31 39 38 35 0d | 3b 0d 3b 20 74 68 69 73 |er 1985.|;.; this| |00000100| 20 69 73 20 74 68 65 20 | 76 65 72 73 69 6f 6e 20 | is the |version | |00000110| 35 2e 32 2e 20 0d 3b 0d | 3b 20 64 69 66 66 65 72 |5.2. .;.|; differ| |00000120| 65 6e 63 65 73 20 66 72 | 6f 6d 20 76 65 72 73 69 |ences fr|om versi| |00000130| 6f 6e 20 35 20 74 6f 20 | 35 2e 32 20 61 72 65 3a |on 5 to |5.2 are:| |00000140| 0d 3b 20 20 20 20 20 20 | 20 62 75 67 20 66 69 78 |.; | bug fix| |00000150| 65 64 20 69 6e 20 74 68 | 65 20 66 75 6c 6c 2d 73 |ed in th|e full-s| |00000160| 63 72 65 65 6e 2d 77 69 | 64 74 68 20 63 61 73 65 |creen-wi|dth case| |00000170| 20 28 66 69 72 73 74 20 | 62 69 74 20 64 6f 6e 65 | (first |bit done| |00000180| 20 72 69 67 68 74 29 0d | 3b 20 20 20 20 20 20 20 | right).|; | |00000190| 6d 61 67 69 63 2d 63 6f | 6e 73 74 61 6e 74 20 74 |magic-co|nstant t| |000001a0| 61 62 6c 65 20 69 73 20 | 63 6f 6d 70 61 63 74 65 |able is |compacte| |000001b0| 64 2c 20 73 74 6f 72 65 | 64 20 69 6e 20 62 79 74 |d, store|d in byt| |000001c0| 65 73 20 69 6e 73 74 65 | 61 64 20 6f 66 20 6c 6f |es inste|ad of lo| |000001d0| 6e 67 73 0d 3b 20 20 20 | 20 20 20 20 73 6f 6d 65 |ngs.; | some| |000001e0| 20 73 6d 61 6c 6c 20 63 | 68 61 6e 67 65 73 20 74 | small c|hanges t| |000001f0| 6f 20 73 61 76 65 20 73 | 70 61 63 65 2c 20 70 6c |o save s|pace, pl| |00000200| 75 73 20 74 68 65 20 74 | 61 62 6c 65 20 73 61 76 |us the t|able sav| |00000210| 65 73 20 61 62 6f 75 74 | 20 31 30 30 20 62 79 74 |es about| 100 byt| |00000220| 65 73 0d 3b 20 20 20 20 | 20 20 20 74 65 73 74 65 |es.; | teste| |00000230| 64 20 62 79 20 61 20 70 | 72 6f 67 72 61 6d 20 6f |d by a p|rogram o| |00000240| 6e 20 73 65 76 65 72 61 | 6c 20 6d 69 6c 6c 69 6f |n severa|l millio| |00000250| 6e 20 63 61 73 65 73 3b | 20 74 68 69 73 20 68 65 |n cases;| this he| |00000260| 6c 70 65 64 20 66 69 6e | 64 2e 2e 2e 0d 3b 20 20 |lped fin|d....; | |00000270| 20 20 20 20 20 79 65 74 | 20 6d 6f 72 65 20 62 75 | yet| more bu| |00000280| 67 73 20 69 6e 20 6c 6f | 67 32 20 72 6f 75 74 69 |gs in lo|g2 routi| |00000290| 6e 65 20 66 69 78 65 64 | 20 28 22 62 69 74 77 69 |ne fixed| ("bitwi| |000002a0| 64 74 68 22 20 72 6f 75 | 74 69 6e 65 20 61 64 64 |dth" rou|tine add| |000002b0| 65 64 29 0d 3b 20 64 69 | 66 66 65 72 65 6e 63 65 |ed).; di|fference| |000002c0| 73 20 66 72 6f 6d 20 76 | 65 72 73 69 6f 6e 20 34 |s from v|ersion 4| |000002d0| 20 61 72 65 3a 0d 3b 20 | 20 20 20 20 20 20 6e 61 | are:.; | na| |000002e0| 73 74 79 20 62 75 67 20 | 66 69 78 65 64 20 69 6e |sty bug |fixed in| |000002f0| 20 63 6f 70 79 69 6e 67 | 20 73 6d 61 6c 6c 20 72 | copying| small r| |00000300| 65 63 74 61 6e 67 6c 65 | 73 0d 3b 20 20 20 20 20 |ectangle|s.; | |00000310| 20 20 6e 65 77 20 61 64 | 64 72 65 73 73 20 66 6f | new ad|dress fo| |00000320| 72 20 63 6f 72 72 65 73 | 70 6f 6e 64 65 6e 63 65 |r corres|pondence| |00000330| 0d 3b 20 20 20 20 20 20 | 20 73 6c 69 67 68 74 6c |.; | slightl| |00000340| 79 20 6d 6f 72 65 20 64 | 65 74 61 69 6c 65 64 20 |y more d|etailed | |00000350| 6e 6f 74 65 73 20 6f 6e | 20 63 61 6c 6c 69 6e 67 |notes on| calling| |00000360| 20 66 72 6f 6d 20 43 0d | 3b 20 20 20 20 20 20 20 | from C.|; | |00000370| 76 61 72 69 6f 75 73 20 | 6d 69 73 63 65 6c 6c 61 |various |miscella| |00000380| 6e 65 6f 75 73 20 63 6f | 6d 6d 65 6e 74 20 63 68 |neous co|mment ch| |00000390| 61 6e 67 65 73 0d 3b 20 | 64 69 66 66 65 72 65 6e |anges.; |differen| |000003a0| 63 65 73 20 66 72 6f 6d | 20 76 65 72 73 69 6f 6e |ces from| version| |000003b0| 20 33 20 61 72 65 3a 0d | 3b 20 20 20 20 20 20 20 | 3 are:.|; | |000003c0| 62 75 67 73 20 69 6e 20 | 74 68 65 20 6c 6f 67 32 |bugs in |the log2| |000003d0| 20 72 6f 75 74 69 6e 65 | 20 66 69 78 65 64 0d 3b | routine| fixed.;| |000003e0| 20 20 20 20 20 20 20 67 | 65 6e 65 72 61 6c 20 63 | g|eneral c| |000003f0| 61 73 65 20 73 70 65 64 | 20 75 70 20 61 62 6f 75 |ase sped| up abou| |00000400| 74 20 66 69 76 65 20 70 | 65 72 63 65 6e 74 0d 3b |t five p|ercent.;| |00000410| 20 20 20 20 20 20 20 63 | 65 72 74 61 69 6e 20 63 | c|ertain c| |00000420| 61 73 65 73 20 28 65 2e | 67 2e 2c 20 74 68 65 20 |ases (e.|g., the | |00000430| 66 75 6c 6c 20 73 63 72 | 65 65 6e 29 20 73 70 65 |full scr|een) spe| |00000440| 64 20 75 70 20 6f 76 65 | 72 20 66 69 66 74 79 20 |d up ove|r fifty | |00000450| 70 65 72 63 65 6e 74 0d | 3b 20 20 20 20 20 20 20 |percent.|; | |00000460| 74 68 65 20 74 69 6d 65 | 20 74 6f 20 64 69 73 73 |the time| to diss| |00000470| 6f 6c 76 65 20 69 73 20 | 6e 6f 74 20 64 69 72 65 |olve is |not dire| |00000480| 63 74 6c 79 20 72 65 6c | 61 74 65 64 20 74 6f 20 |ctly rel|ated to | |00000490| 74 68 65 20 73 69 7a 65 | 20 6f 66 20 74 68 65 20 |the size| of the | |000004a0| 72 65 63 74 0d 3b 20 64 | 69 66 66 65 72 65 6e 63 |rect.; d|ifferenc| |000004b0| 65 73 20 62 65 74 77 65 | 65 6e 20 76 65 72 73 69 |es betwe|en versi| |000004c0| 6f 6e 20 32 20 61 6e 64 | 20 76 65 72 73 69 6f 6e |on 2 and| version| |000004d0| 20 33 20 61 72 65 3a 0d | 3b 20 20 20 20 20 20 20 | 3 are:.|; | |000004e0| 64 6f 63 75 6d 65 6e 74 | 61 74 69 6f 6e 20 69 6d |document|ation im| |000004f0| 70 72 6f 76 65 64 20 61 | 6e 64 20 6e 65 61 74 65 |proved a|nd neate| |00000500| 6e 65 64 0d 3b 20 20 20 | 20 20 20 20 6c 6f 67 32 |ned.; | log2| |00000510| 20 72 6f 75 74 69 6e 65 | 20 72 65 77 72 69 74 74 | routine| rewritt| |00000520| 65 6e 0d 3b 0d 3b 20 63 | 6f 6d 6d 65 6e 74 73 20 |en.;.; c|omments | |00000530| 61 6e 64 20 73 75 67 67 | 65 73 74 69 6f 6e 73 20 |and sugg|estions | |00000540| 61 72 65 2c 20 6f 66 20 | 63 6f 75 72 73 65 2c 20 |are, of |course, | |00000550| 77 65 6c 63 6f 6d 65 2e | 0d 3b 0d 3b 20 2a 2a 2a |welcome.|.;.; ***| |00000560| 2a 2a 2a 2a 2a 2a 2a 2a | 2a 2a 2a 2a 2a 2a 2a 2a |********|********| |00000570| 2a 2a 2a 2a 2a 2a 2a 2a | 2a 2a 2a 2a 2a 2a 2a 2a |********|********| |00000580| 2a 2a 2a 2a 2a 2a 2a 2a | 2a 2a 2a 2a 2a 2a 2a 2a |********|********| |00000590| 2a 2a 2a 2a 2a 2a 2a 2a | 2a 2a 2a 2a 2a 2a 2a 2a |********|********| |000005a0| 2a 2a 2a 2a 2a 2a 2a 2a | 2a 2a 2a 0d 3b 20 2a 09 |********|***.; *.| |000005b0| 09 09 09 09 09 09 09 09 | 20 20 20 20 20 20 20 2a |........| *| |000005c0| 0d 3b 20 2a 09 09 20 20 | 20 20 63 6f 70 79 72 69 |.; *.. | copyri| |000005d0| 67 68 74 20 31 39 38 34 | 2c 20 31 39 38 35 20 62 |ght 1984|, 1985 b| |000005e0| 79 20 6d 69 63 68 61 65 | 6c 20 73 2e 20 6d 6f 72 |y michae|l s. mor| |000005f0| 74 6f 6e 20 20 20 20 20 | 20 20 20 20 20 20 20 20 |ton | | |00000600| 20 20 20 20 20 2a 0d 3b | 20 2a 20 20 20 20 20 20 | *.;| * | |00000610| 20 20 20 70 65 72 6d 69 | 73 73 69 6f 6e 20 74 6f | permi|ssion to| |00000620| 20 70 75 62 6c 69 73 68 | 20 61 6e 64 20 64 69 73 | publish| and dis| |00000630| 74 72 69 62 75 74 65 20 | 67 72 61 6e 74 65 64 20 |tribute |granted | |00000640| 74 6f 20 4d 61 63 54 75 | 74 6f 72 20 20 20 20 20 |to MacTu|tor | |00000650| 20 20 20 20 20 20 2a 20 | 20 20 20 20 20 20 20 20 | * | | |00000660| 20 20 20 20 0d 3b 20 2a | 20 20 20 20 70 6c 65 61 | .; *| plea| |00000670| 73 65 20 73 65 65 20 64 | 65 74 61 69 6c 73 20 62 |se see d|etails b| |00000680| 65 6c 6f 77 20 6f 6e 20 | 75 73 69 6e 67 2c 20 63 |elow on |using, c| |00000690| 6f 70 79 69 6e 67 20 61 | 6e 64 20 63 68 61 6e 67 |opying a|nd chang| |000006a0| 69 6e 67 20 74 68 69 73 | 20 73 6f 75 72 63 65 2e |ing this| source.| |000006b0| 20 20 20 20 2a 0d 3b 20 | 2a 09 09 09 09 09 09 09 | *.; |*.......| |000006c0| 09 09 20 20 20 20 20 20 | 20 2a 0d 3b 20 2a 2a 2a |.. | *.; ***| |000006d0| 2a 2a 2a 2a 2a 2a 2a 2a | 2a 2a 2a 2a 2a 2a 2a 2a |********|********| |000006e0| 2a 2a 2a 2a 2a 2a 2a 2a | 2a 2a 2a 2a 2a 2a 2a 2a |********|********| |000006f0| 2a 2a 2a 2a 2a 2a 2a 2a | 2a 2a 2a 2a 2a 2a 2a 2a |********|********| |00000700| 2a 2a 2a 2a 2a 2a 2a 2a | 2a 2a 2a 2a 2a 2a 2a 2a |********|********| |00000710| 2a 2a 2a 2a 2a 2a 2a 2a | 2a 2a 2a 0d 3b 0d 3b 20 |********|***.;.; | |00000720| 77 68 61 74 20 74 68 69 | 73 20 72 6f 75 74 69 6e |what thi|s routin| |00000730| 65 20 64 6f 65 73 3a 0d | 3b 20 2d 2d 2d 2d 2d 2d |e does:.|; ------| |00000740| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------| |00000750| 0d 3b 0d 3b 20 64 69 73 | 73 42 69 74 73 20 69 73 |.;.; dis|sBits is| |00000760| 20 6c 69 6b 65 20 63 6f | 70 79 42 69 74 73 3a 20 | like co|pyBits: | |00000770| 69 74 20 6d 6f 76 65 73 | 20 6f 6e 65 20 72 65 63 |it moves| one rec| |00000780| 74 20 74 6f 20 61 6e 6f | 74 68 65 72 2c 20 69 6e |t to ano|ther, in| |00000790| 20 74 68 65 69 72 20 72 | 65 73 70 65 63 74 69 76 | their r|espectiv| |000007a0| 65 0d 3b 20 62 69 74 4d | 61 70 73 2e 20 20 69 74 |e.; bitM|aps. it| |000007b0| 20 64 6f 65 73 6e 27 74 | 20 69 6d 70 6c 65 6d 65 | doesn't| impleme| |000007c0| 6e 74 20 74 68 65 20 6d | 6f 64 65 73 20 6f 66 20 |nt the m|odes of | |000007d0| 63 6f 70 79 42 69 74 73 | 2c 20 6e 6f 72 20 63 6c |copyBits|, nor cl| |000007e0| 69 70 70 69 6e 67 20 74 | 6f 20 61 0d 3b 20 72 65 |ipping t|o a.; re| |000007f0| 67 69 6f 6e 2e 20 20 77 | 68 61 74 20 69 74 20 44 |gion. w|hat it D| |00000800| 4f 45 53 20 64 6f 20 69 | 73 20 63 6f 70 79 20 74 |OES do i|s copy t| |00000810| 68 65 20 62 69 74 73 20 | 69 6e 20 61 20 70 73 65 |he bits |in a pse| |00000820| 75 64 6f 2d 72 61 6e 64 | 6f 6d 20 6f 72 64 65 72 |udo-rand|om order| |00000830| 2c 20 67 69 76 69 6e 67 | 0d 3b 20 74 68 65 20 61 |, giving|.; the a| |00000840| 70 70 65 61 72 61 6e 63 | 65 20 6f 66 20 22 64 69 |ppearanc|e of "di| |00000850| 73 73 6f 6c 76 69 6e 67 | 22 20 66 72 6f 6d 20 6f |ssolving|" from o| |00000860| 6e 65 20 69 6d 61 67 65 | 20 74 6f 20 61 6e 6f 74 |ne image| to anot| |00000870| 68 65 72 2e 20 20 74 68 | 65 20 64 69 73 73 6f 6c |her. th|e dissol| |00000880| 76 65 20 69 73 0d 3b 20 | 72 61 70 69 64 3a 20 74 |ve is.; |rapid: t| |00000890| 68 65 20 65 6e 74 69 72 | 65 20 73 63 72 65 65 6e |he entir|e screen| |000008a0| 20 77 69 6c 6c 20 64 69 | 73 73 6f 6c 76 65 20 69 | will di|ssolve i| |000008b0| 6e 20 75 6e 64 65 72 20 | 66 6f 75 72 20 73 65 63 |n under |four sec| |000008c0| 6f 6e 64 73 2e 09 20 28 | 6e 6f 74 65 3a 20 73 6d |onds.. (|note: sm| |000008d0| 61 6c 6c 65 72 0d 3b 20 | 61 72 65 61 73 20 6d 61 |aller.; |areas ma| |000008e0| 79 20 62 65 20 53 4c 4f | 57 45 52 20 74 6f 20 64 |y be SLO|WER to d| |000008f0| 69 73 73 6f 6c 76 65 20 | 2d 2d 20 73 65 65 20 62 |issolve |-- see b| |00000900| 65 6c 6f 77 2e 29 0d 3b | 0d 3b 20 63 6f 70 79 42 |elow.).;|.; copyB| |00000910| 69 74 73 20 70 61 79 73 | 20 61 74 74 65 6e 74 69 |its pays| attenti| |00000920| 6f 6e 20 74 6f 20 74 68 | 65 20 63 75 72 72 65 6e |on to th|e curren| |00000930| 74 20 63 6c 69 70 70 69 | 6e 67 2e 20 20 74 68 69 |t clippi|ng. thi| |00000940| 73 20 72 6f 75 74 69 6e | 65 20 64 6f 65 73 6e 27 |s routin|e doesn'| |00000950| 74 2e 0d 3b 0d 3b 20 6f | 74 68 65 72 20 6c 69 6b |t..;.; o|ther lik| |00000960| 65 6c 79 20 64 69 66 66 | 65 72 65 6e 63 65 73 20 |ely diff|erences | |00000970| 66 72 6f 6d 20 63 6f 70 | 79 42 69 74 73 3a 0d 3b |from cop|yBits:.;| |00000980| 20 20 20 20 20 6f 09 20 | 74 68 65 20 72 65 63 74 | o. |the rect| |00000990| 61 6e 67 6c 65 73 20 6d | 75 73 74 20 68 61 76 65 |angles m|ust have| |000009a0| 20 74 68 65 20 73 61 6d | 65 20 65 78 74 65 6e 74 | the sam|e extent| |000009b0| 73 20 28 6e 6f 74 20 6e | 65 63 65 73 73 61 72 69 |s (not n|ecessari| |000009c0| 6c 79 20 74 68 65 20 73 | 61 6d 65 0d 3b 09 20 6c |ly the s|ame.;. l| |000009d0| 72 62 74 29 2e 09 20 69 | 66 20 74 68 65 79 20 61 |rbt).. i|f they a| |000009e0| 72 65 20 6e 6f 74 2c 20 | 74 68 65 20 72 6f 75 74 |re not, |the rout| |000009f0| 69 6e 65 20 77 69 6c 6c | 20 72 65 74 75 72 6e 20 |ine will| return | |00000a00| 2d 2d 20 64 6f 69 6e 67 | 20 6e 6f 74 68 69 6e 67 |-- doing| nothing| |00000a10| 21 0d 3b 09 20 6e 6f 20 | 73 74 72 65 74 63 68 69 |!.;. no |stretchi| |00000a20| 6e 67 20 63 6f 70 79 20 | 69 73 20 64 6f 6e 65 20 |ng copy |is done | |00000a30| 61 73 20 63 6f 70 79 42 | 69 74 73 20 77 6f 75 6c |as copyB|its woul| |00000a40| 64 2e 0d 3b 20 20 20 20 | 20 6f 09 20 74 68 65 20 |d..; | o. the | |00000a50| 63 75 72 73 6f 72 20 69 | 73 20 68 69 64 64 65 6e |cursor i|s hidden| |00000a60| 20 64 75 72 69 6e 67 20 | 74 68 65 20 64 69 73 73 | during |the diss| |00000a70| 6f 6c 76 65 2c 20 73 69 | 6e 63 65 20 64 72 61 77 |olve, si|nce draw| |00000a80| 69 6e 67 20 69 73 20 64 | 6f 6e 65 20 77 69 74 68 |ing is d|one with| |00000a90| 6f 75 74 0d 3b 09 20 71 | 75 69 63 6b 64 72 61 77 |out.;. q|uickdraw| |00000aa0| 20 63 61 6c 6c 73 2e 20 | 20 74 68 65 20 63 75 72 | calls. | the cur| |00000ab0| 73 6f 72 20 72 65 61 70 | 70 65 61 72 73 20 77 68 |sor reap|pears wh| |00000ac0| 65 6e 20 74 68 65 20 64 | 72 61 77 69 6e 67 20 69 |en the d|rawing i| |00000ad0| 73 20 66 69 6e 69 73 68 | 65 64 2e 0d 3b 09 20 66 |s finish|ed..;. f| |00000ae0| 6f 72 20 61 6e 20 6f 64 | 64 20 65 66 66 65 63 74 |or an od|d effect| |00000af0| 2c 20 63 68 61 6e 67 65 | 20 69 74 20 6e 6f 74 20 |, change| it not | |00000b00| 74 6f 20 68 69 64 65 20 | 74 68 65 20 63 75 72 73 |to hide |the curs| |00000b10| 6f 72 3b 20 69 73 20 74 | 68 69 73 20 68 6f 77 20 |or; is t|his how | |00000b20| 62 69 6c 6c 0d 3b 09 20 | 61 74 6b 69 6e 73 6f 6e |bill.;. |atkinson| |00000b30| 20 74 68 6f 75 67 68 74 | 20 6f 66 20 74 68 65 20 | thought| of the | |00000b40| 73 70 72 61 79 20 63 61 | 6e 20 69 6e 20 4d 61 63 |spray ca|n in Mac| |00000b50| 50 61 69 6e 74 3f 0d 3b | 20 20 20 20 20 6f 09 20 |Paint?.;| o. | |00000b60| 63 6f 70 79 42 69 74 73 | 20 6d 61 79 20 62 65 20 |copyBits| may be | |00000b70| 73 6d 61 72 74 20 65 6e | 6f 75 67 68 20 74 6f 20 |smart en|ough to | |00000b80| 64 65 61 6c 20 77 69 74 | 68 20 6f 76 65 72 6c 61 |deal wit|h overla| |00000b90| 70 70 69 6e 67 20 61 72 | 65 61 73 20 6f 66 20 6d |pping ar|eas of m| |00000ba0| 65 6d 6f 72 79 2e 0d 3b | 09 20 74 68 69 73 20 72 |emory..;|. this r| |00000bb0| 6f 75 74 69 6e 65 20 63 | 65 72 74 61 69 6e 6c 79 |outine c|ertainly| |00000bc0| 20 69 73 6e 27 74 2e 0d | 3b 20 20 20 20 20 6f 09 | isn't..|; o.| |00000bd0| 20 62 65 63 61 75 73 65 | 20 74 68 69 73 20 72 6f | because| this ro| |00000be0| 75 74 69 6e 65 20 69 73 | 20 64 65 73 70 65 72 61 |utine is| despera| |00000bf0| 74 65 20 66 6f 72 20 73 | 70 65 65 64 2c 20 69 74 |te for s|peed, it| |00000c00| 20 73 74 65 61 6c 73 20 | 74 68 65 20 41 35 20 28 | steals |the A5 (| |00000c10| 67 6c 6f 62 61 6c 73 29 | 0d 3b 09 20 72 65 67 69 |globals)|.;. regi| |00000c20| 73 74 65 72 2c 20 75 73 | 65 73 20 69 74 20 69 6e |ster, us|es it in| |00000c30| 20 74 68 65 20 63 65 6e | 74 72 61 6c 20 6c 6f 6f | the cen|tral loo| |00000c40| 70 2c 20 74 68 65 6e 20 | 72 65 73 74 6f 72 65 73 |p, then |restores| |00000c50| 20 69 74 20 62 65 66 6f | 72 65 0d 3b 09 20 72 65 | it befo|re.;. re| |00000c60| 74 75 72 6e 69 6e 67 2e | 20 69 66 20 79 6f 75 20 |turning.| if you | |00000c70| 68 61 76 65 20 76 65 72 | 74 69 63 61 6c 20 72 65 |have ver|tical re| |00000c80| 74 72 61 63 65 20 74 61 | 73 6b 73 20 77 68 69 63 |trace ta|sks whic| |00000c90| 68 20 72 75 6e 20 64 75 | 72 69 6e 67 20 74 68 65 |h run du|ring the| |00000ca0| 0d 3b 09 20 64 69 73 73 | 6f 6c 76 65 2c 20 74 68 |.;. diss|olve, th| |00000cb0| 65 79 27 6c 6c 20 77 61 | 6b 65 20 75 70 20 77 69 |ey'll wa|ke up wi| |00000cc0| 74 68 20 74 68 65 20 62 | 6f 67 75 73 20 41 35 2e |th the b|ogus A5.| |00000cd0| 20 20 73 69 6e 63 65 20 | 74 68 65 20 52 4f 4d 20 | since |the ROM | |00000ce0| 70 75 6c 6c 73 20 74 68 | 69 73 0d 3b 09 20 74 72 |pulls th|is.;. tr| |00000cf0| 69 63 6b 20 74 6f 6f 2c | 20 69 20 66 65 65 6c 20 |ick too,| i feel | |00000d00| 74 68 69 73 20 69 73 6e | 27 74 20 61 20 62 75 67 |this isn|'t a bug| |00000d10| 20 69 6e 20 4d 59 20 63 | 6f 64 65 2c 20 62 75 74 | in MY c|ode, but| |00000d20| 20 69 74 20 49 53 20 6d | 6f 72 65 20 6c 69 6b 65 | it IS m|ore like| |00000d30| 6c 79 0d 3b 09 20 74 6f | 20 65 78 70 6f 73 65 20 |ly.;. to| expose | |00000d40| 62 75 67 73 20 69 6e 20 | 56 42 4c 20 74 61 73 6b |bugs in |VBL task| |00000d50| 73 2e 20 20 74 6f 20 63 | 6f 72 72 65 63 74 20 74 |s. to c|orrect t| |00000d60| 68 65 20 70 72 6f 62 6c | 65 6d 2c 20 68 61 76 65 |he probl|em, have| |00000d70| 20 79 6f 75 72 20 74 61 | 73 6b 0d 3b 09 20 6c 6f | your ta|sk.;. lo| |00000d80| 61 64 20 41 35 20 66 72 | 6f 6d 20 74 68 65 20 6c |ad A5 fr|om the l| |00000d90| 6f 77 20 52 41 4d 20 6c | 6f 63 61 74 69 6f 6e 20 |ow RAM l|ocation | |00000da0| 22 63 75 72 72 65 6e 74 | 41 35 22 20 69 6d 6d 65 |"current|A5" imme| |00000db0| 64 69 61 74 65 6c 79 20 | 75 70 6f 6e 20 73 74 61 |diately |upon sta| |00000dc0| 72 74 69 6e 67 0d 3b 09 | 20 75 70 2c 20 74 68 65 |rting.;.| up, the| |00000dd0| 6e 20 72 65 73 74 6f 72 | 65 20 69 74 73 20 63 61 |n restor|e its ca| |00000de0| 6c 6c 65 72 27 73 20 41 | 35 20 62 65 66 6f 72 65 |ller's A|5 before| |00000df0| 20 72 65 74 75 72 6e 69 | 6e 67 2e 0d 3b 0d 3b 20 | returni|ng..;.; | |00000e00| 79 6f 75 20 73 68 6f 75 | 6c 64 20 6b 6e 6f 77 20 |you shou|ld know | |00000e10| 61 20 66 65 77 20 69 6d | 70 6c 65 6d 65 6e 74 61 |a few im|plementa| |00000e20| 74 69 6f 6e 20 64 65 74 | 61 69 6c 73 20 77 68 69 |tion det|ails whi| |00000e30| 63 68 20 6d 61 79 20 68 | 65 6c 70 3a 0d 3b 20 20 |ch may h|elp:.; | |00000e40| 20 20 20 6f 09 20 63 6f | 70 79 69 6e 67 20 66 72 | o. co|pying fr| |00000e50| 6f 6d 20 61 20 64 61 72 | 6b 20 61 72 65 61 20 28 |om a dar|k area (| |00000e60| 6c 6f 74 73 20 6f 66 20 | 31 20 62 69 74 73 29 20 |lots of |1 bits) | |00000e70| 69 73 20 73 6c 6f 77 65 | 72 20 74 68 61 6e 20 66 |is slowe|r than f| |00000e80| 72 6f 6d 20 61 20 6c 69 | 67 68 74 0d 3b 09 20 61 |rom a li|ght.;. a| |00000e90| 72 65 61 2e 20 20 62 75 | 74 20 6a 75 73 74 20 62 |rea. bu|t just b| |00000ea0| 61 72 65 6c 79 20 28 61 | 20 66 65 77 20 70 65 72 |arely (a| few per| |00000eb0| 20 63 65 6e 74 29 2e 0d | 3b 20 20 20 20 20 6f 09 | cent)..|; o.| |00000ec0| 20 74 68 65 72 65 20 69 | 73 20 6e 6f 20 77 61 79 | there i|s no way| |00000ed0| 20 74 6f 20 75 73 65 20 | 74 68 69 73 20 74 6f 20 | to use |this to | |00000ee0| 72 61 6e 64 6f 6d 6c 79 | 20 69 6e 76 65 72 74 20 |randomly| invert | |00000ef0| 61 20 72 65 63 74 61 6e | 67 6c 65 2e 20 20 69 6e |a rectan|gle. in| |00000f00| 73 74 65 61 64 2c 0d 3b | 09 20 63 6f 70 79 42 69 |stead,.;|. copyBi| |00000f10| 74 73 20 69 74 20 65 6c | 73 65 77 68 65 72 65 2c |ts it el|sewhere,| |00000f20| 20 69 6e 76 65 72 74 20 | 69 74 2c 20 61 6e 64 20 | invert |it, and | |00000f30| 64 69 73 73 42 69 74 73 | 20 69 74 20 62 61 63 6b |dissBits| it back| |00000f40| 20 69 6e 74 6f 20 70 6c | 61 63 65 2e 0d 3b 20 20 | into pl|ace..; | |00000f50| 20 20 20 6f 09 20 74 68 | 65 72 65 20 69 73 20 61 | o. th|ere is a| |00000f60| 6c 73 6f 20 6e 6f 20 77 | 61 79 20 74 6f 20 73 6c |lso no w|ay to sl| |00000f70| 6f 77 20 74 68 65 20 64 | 69 73 73 6f 6c 76 65 20 |ow the d|issolve | |00000f80| 6f 66 20 61 20 73 6d 61 | 6c 6c 20 61 72 65 61 2e |of a sma|ll area.| |00000f90| 20 20 74 6f 20 64 6f 20 | 74 68 69 73 2c 0d 3b 09 | to do |this,.;.| |00000fa0| 20 63 6f 70 79 20 61 20 | 6c 61 72 67 65 20 61 72 | copy a |large ar| |00000fb0| 65 61 20 69 6e 20 77 68 | 69 63 68 20 74 68 65 20 |ea in wh|ich the | |00000fc0| 6f 6e 6c 79 20 64 69 66 | 66 65 72 65 6e 63 65 20 |only dif|ference | |00000fd0| 69 73 20 74 68 65 20 61 | 72 65 61 20 74 6f 20 63 |is the a|rea to c| |00000fe0| 68 61 6e 67 65 2e 0d 3b | 20 20 20 20 20 6f 09 20 |hange..;| o. | |00000ff0| 69 66 20 79 6f 75 20 66 | 61 64 65 20 69 6e 20 61 |if you f|ade in a| |00001000| 20 73 6f 6c 69 64 20 61 | 72 65 61 2c 20 79 6f 75 | solid a|rea, you| |00001010| 27 72 65 20 6c 69 6b 65 | 6c 79 20 74 6f 20 73 65 |'re like|ly to se| |00001020| 65 20 70 61 74 74 65 72 | 6e 73 2c 20 73 69 6e 63 |e patter|ns, sinc| |00001030| 65 20 74 68 65 0d 3b 09 | 20 72 61 6e 64 6f 6d 20 |e the.;.| random | |00001040| 6e 75 6d 62 65 72 73 20 | 61 72 65 20 73 6f 20 63 |numbers |are so c| |00001050| 68 65 65 73 79 2e 20 20 | 64 6f 6e 27 74 20 64 6f |heesy. |don't do| |00001060| 20 74 68 69 73 3b 20 66 | 61 64 65 20 69 6e 20 6e | this; f|ade in n| |00001070| 69 66 74 79 20 70 61 74 | 74 65 72 6e 73 0d 3b 09 |ifty pat|terns.;.| |00001080| 20 77 68 69 63 68 20 77 | 69 6c 6c 20 64 69 73 74 | which w|ill dist| |00001090| 72 61 63 74 20 79 6f 75 | 72 20 76 69 65 77 65 72 |ract you|r viewer| |000010a0| 73 2e 0d 3b 20 20 20 20 | 20 6f 20 76 65 72 79 20 |s..; | o very | |000010b0| 73 6d 61 6c 6c 20 61 72 | 65 61 73 20 28 6c 65 73 |small ar|eas (les| |000010c0| 73 20 74 68 61 6e 20 32 | 20 70 69 78 65 6c 73 20 |s than 2| pixels | |000010d0| 69 6e 20 65 69 74 68 65 | 72 20 64 69 6d 65 6e 73 |in eithe|r dimens| |000010e0| 69 6f 6e 29 20 61 72 65 | 20 61 63 74 75 61 6c 6c |ion) are| actuall| |000010f0| 79 0d 3b 20 20 20 20 20 | 20 20 64 6f 6e 65 20 77 |y.; | done w| |00001100| 69 74 68 20 61 20 63 61 | 6c 6c 20 74 6f 20 74 68 |ith a ca|ll to th| |00001110| 65 20 72 65 61 6c 20 63 | 6f 70 79 42 69 74 73 20 |e real c|opyBits | |00001120| 72 6f 75 74 69 6e 65 2c | 20 73 69 6e 63 65 20 74 |routine,| since t| |00001130| 68 65 20 70 73 65 75 64 | 6f 2d 72 61 6e 64 6f 6d |he pseud|o-random| |00001140| 0d 3b 20 20 20 20 20 20 | 20 73 65 71 75 65 6e 63 |.; | sequenc| |00001150| 65 20 67 65 6e 65 72 61 | 74 6f 72 20 66 61 6c 6c |e genera|tor fall| |00001160| 73 20 61 70 61 72 74 20 | 75 6e 64 65 72 20 74 68 |s apart |under th| |00001170| 6f 73 65 20 63 6f 6e 64 | 69 74 69 6f 6e 73 2e 0d |ose cond|itions..| |00001180| 3b 0d 3b 20 61 20 63 6c | 6f 73 65 20 72 65 6c 61 |;.; a cl|ose rela| |00001190| 74 69 76 65 20 6f 66 20 | 74 68 69 73 20 72 6f 75 |tive of |this rou| |000011a0| 74 69 6e 65 20 69 73 20 | 22 64 69 73 73 42 79 74 |tine is |"dissByt| |000011b0| 65 73 22 2c 20 77 68 69 | 63 68 20 28 61 73 20 79 |es", whi|ch (as y| |000011c0| 6f 75 20 6d 69 67 68 74 | 20 67 75 65 73 73 29 0d |ou might| guess).| |000011d0| 3b 20 63 6f 70 69 65 73 | 20 61 20 62 79 74 65 20 |; copies| a byte | |000011e0| 61 74 20 61 20 74 69 6d | 65 2c 20 77 68 69 63 68 |at a tim|e, which| |000011f0| 20 69 73 20 72 65 61 6c | 6c 79 20 66 61 73 74 20 | is real|ly fast | |00001200| 28 74 68 65 20 77 68 6f | 6c 65 20 73 63 72 65 65 |(the who|le scree| |00001210| 6e 20 69 6e 20 2e 31 20 | 6f 72 20 2e 32 0d 3b 20 |n in .1 |or .2.; | |00001220| 73 65 63 6f 6e 64 73 29 | 2e 20 20 69 74 20 77 6f |seconds)|. it wo| |00001230| 72 6b 73 20 6f 6e 6c 79 | 20 66 6f 72 20 63 65 72 |rks only| for cer| |00001240| 74 61 69 6e 20 72 65 63 | 74 61 6e 67 6c 65 73 2c |tain rec|tangles,| |00001250| 20 74 68 6f 75 67 68 2e | 0d 3b 0d 3b 20 73 61 6d | though.|.;.; sam| |00001260| 70 6c 65 20 63 61 6c 6c | 69 6e 67 20 63 6f 64 65 |ple call|ing code| |00001270| 3a 0d 3b 20 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |:.; ----|--------| |00001280| 2d 2d 2d 2d 2d 2d 2d 0d | 3b 0d 3b 20 74 68 69 73 |-------.|;.; this| |00001290| 20 69 73 20 61 6e 20 65 | 78 63 65 72 70 74 20 66 | is an e|xcerpt f| |000012a0| 72 6f 6d 20 68 6f 77 20 | 61 20 70 72 65 72 65 6c |rom how |a prerel| |000012b0| 65 61 73 65 20 6f 66 20 | 44 61 72 54 65 72 6d 69 |ease of |DarTermi| |000012c0| 6e 61 6c 20 63 61 6c 6c | 65 64 20 74 68 69 73 20 |nal call|ed this | |000012d0| 72 6f 75 74 69 6e 65 2e | 0d 3b 20 6e 6f 74 65 20 |routine.|.; note | |000012e0| 74 68 65 20 63 6c 65 76 | 65 72 20 75 73 65 20 6f |the clev|er use o| |000012f0| 66 20 22 70 61 69 6e 74 | 62 65 68 69 6e 64 22 2e |f "paint|behind".| |00001300| 09 20 74 68 69 73 20 74 | 6f 6f 6b 20 61 62 6f 75 |. this t|ook abou| |00001310| 74 20 33 20 73 65 63 6f | 6e 64 73 20 74 6f 20 64 |t 3 seco|nds to d| |00001320| 69 73 73 6f 6c 76 65 0d | 3b 20 6f 6e 74 6f 20 74 |issolve.|; onto t| |00001330| 68 65 20 73 63 72 65 65 | 6e 2e 0d 3b 0d 3b 76 61 |he scree|n..;.;va| |00001340| 72 20 20 20 72 67 3a 20 | 20 20 20 20 20 72 67 6e |r rg: | rgn| |00001350| 68 61 6e 64 6c 65 3b 09 | 09 20 20 20 20 20 20 20 |handle;.|. | |00001360| 20 28 2a 20 77 69 6e 64 | 6f 77 20 74 6f 20 63 6f | (* wind|ow to co| |00001370| 70 79 20 69 6e 74 6f 20 | 2a 29 0d 3b 20 20 20 20 |py into |*).; | |00001380| 20 20 61 70 6f 72 74 3a | 20 20 20 67 72 61 66 70 | aport:| grafp| |00001390| 74 72 3b 09 09 20 20 20 | 20 20 20 20 20 28 2a 20 |tr;.. | (* | |000013a0| 70 6f 72 74 20 74 6f 20 | 64 72 61 77 20 69 6e 74 |port to |draw int| |000013b0| 6f 20 2a 29 0d 3b 20 20 | 20 20 20 20 62 69 74 73 |o *).; | bits| |000013c0| 3a 20 20 20 20 62 69 74 | 6d 61 70 3b 09 09 09 20 |: bit|map;... | |000013d0| 20 20 20 20 20 20 20 28 | 2a 20 6e 65 77 20 62 69 | (|* new bi| |000013e0| 74 6d 61 70 20 66 6f 72 | 20 74 68 61 74 20 70 6f |tmap for| that po| |000013f0| 72 74 20 2a 29 0d 3b 20 | 20 20 20 20 20 72 3a 20 |rt *).; | r: | |00001400| 20 20 20 20 20 20 72 65 | 63 74 3b 09 09 09 20 20 | re|ct;... | |00001410| 20 20 20 20 20 20 28 2a | 20 72 65 63 74 61 6e 67 | (*| rectang| |00001420| 6c 65 20 74 6f 20 64 72 | 61 77 20 69 6e 74 6f 20 |le to dr|aw into | |00001430| 2a 29 0d 3b 20 20 20 20 | 20 20 70 61 74 3a 20 20 |*).; | pat: | |00001440| 20 20 20 70 61 74 74 65 | 72 6e 3b 0d 3b 20 20 20 | patte|rn;.; | |00001450| 20 20 20 74 65 78 74 3a | 20 20 20 20 70 61 63 6b | text:| pack| |00001460| 65 64 20 61 72 72 61 79 | 5b 31 2e 2e 33 37 5d 20 |ed array|[1..37] | |00001470| 6f 66 20 63 68 61 72 3b | 0d 3b 20 2e 2e 2e 0d 3b |of char;|.; ....;| |00001480| 20 20 20 61 70 6f 72 74 | 20 3a 3d 20 67 72 61 66 | aport| := graf| |00001490| 70 74 72 28 6e 65 77 70 | 74 72 28 73 69 7a 65 6f |ptr(newp|tr(sizeo| |000014a0| 66 28 67 72 61 66 70 6f | 72 74 29 29 29 3b 20 28 |f(grafpo|rt))); (| |000014b0| 2a 20 67 65 74 20 61 20 | 70 6f 72 74 20 2a 29 0d |* get a |port *).| |000014c0| 3b 20 20 20 6f 70 65 6e | 70 6f 72 74 28 61 70 6f |; open|port(apo| |000014d0| 72 74 29 3b 09 09 09 20 | 20 20 20 20 20 20 20 28 |rt);... | (| |000014e0| 2a 20 6d 61 6b 65 20 69 | 74 20 63 75 72 72 65 6e |* make i|t curren| |000014f0| 74 20 2a 29 0d 3b 0d 3b | 20 20 20 72 20 3a 3d 20 |t *).;.;| r := | |00001500| 74 68 65 70 6f 72 74 5e | 2e 70 6f 72 74 62 69 74 |theport^|.portbit| |00001510| 73 2e 62 6f 75 6e 64 73 | 3b 09 20 20 20 20 20 20 |s.bounds|;. | |00001520| 20 20 28 2a 20 73 74 61 | 72 74 20 77 69 74 68 20 | (* sta|rt with | |00001530| 77 68 6f 6c 65 20 73 63 | 72 65 65 6e 20 2a 29 0d |whole sc|reen *).| |00001540| 3b 20 20 20 69 6e 73 65 | 74 72 65 63 74 28 72 2c |; inse|trect(r,| |00001550| 31 30 30 2c 31 30 30 29 | 3b 09 09 20 20 20 20 20 |100,100)|;.. | |00001560| 20 20 20 28 2a 20 67 65 | 74 20 77 69 6e 64 6f 77 | (* ge|t window| |00001570| 2d 73 69 7a 65 20 72 65 | 63 74 20 2a 29 0d 3b 20 |-size re|ct *).; | |00001580| 20 20 28 2a 20 6e 6f 74 | 65 20 74 68 61 74 20 74 | (* not|e that t| |00001590| 68 65 20 6e 75 6d 62 65 | 72 20 6f 66 20 62 79 74 |he numbe|r of byt| |000015a0| 65 73 20 70 65 72 20 72 | 6f 77 20 6d 75 73 74 20 |es per r|ow must | |000015b0| 62 65 20 65 76 65 6e 21 | 20 2a 29 0d 3b 20 20 20 |be even!| *).; | |000015c0| 62 69 74 73 2e 72 6f 77 | 62 79 74 65 73 20 3a 3d |bits.row|bytes :=| |000015d0| 20 28 28 28 72 2e 72 69 | 67 68 74 2d 72 2e 6c 65 | (((r.ri|ght-r.le| |000015e0| 66 74 29 2b 31 35 29 20 | 64 69 76 20 31 36 29 20 |ft)+15) |div 16) | |000015f0| 2a 20 32 3b 20 28 2a 20 | 66 69 6e 64 20 62 79 74 |* 2; (* |find byt| |00001600| 65 73 2f 72 6f 77 20 2a | 29 0d 3b 20 20 20 62 69 |es/row *|).; bi| |00001610| 74 73 2e 62 61 73 65 61 | 64 64 72 20 3a 3d 20 71 |ts.basea|ddr := q| |00001620| 64 70 74 72 28 6e 65 77 | 70 74 72 28 62 69 74 73 |dptr(new|ptr(bits| |00001630| 2e 72 6f 77 62 79 74 65 | 73 2a 28 72 2e 62 6f 74 |.rowbyte|s*(r.bot| |00001640| 74 6f 6d 2d 72 2e 74 6f | 70 29 29 29 3b 20 28 2a |tom-r.to|p))); (*| |00001650| 20 67 65 74 20 73 70 61 | 63 65 20 2a 29 0d 3b 20 | get spa|ce *).; | |00001660| 20 20 62 69 74 73 2e 62 | 6f 75 6e 64 73 20 3a 3d | bits.b|ounds :=| |00001670| 20 72 3b 09 09 09 20 20 | 20 20 20 20 20 20 28 2a | r;... | (*| |00001680| 20 62 6f 75 6e 64 61 72 | 79 20 72 65 63 74 20 66 | boundar|y rect f| |00001690| 6f 72 20 62 69 74 6d 61 | 70 20 2a 29 0d 3b 0d 3b |or bitma|p *).;.;| |000016a0| 20 20 20 73 65 74 70 6f | 72 74 62 69 74 73 28 62 | setpo|rtbits(b| |000016b0| 69 74 73 29 3b 09 09 09 | 20 20 20 20 20 20 20 20 |its);...| | |000016c0| 28 2a 20 6d 61 6b 65 20 | 6e 65 77 20 62 69 74 6d |(* make |new bitm| |000016d0| 61 70 20 63 75 72 72 65 | 6e 74 20 2a 29 0d 3b 0d |ap curre|nt *).;.| |000016e0| 3b 20 20 20 65 72 61 73 | 65 72 65 63 74 28 72 29 |; eras|erect(r)| |000016f0| 3b 0d 3b 20 20 20 74 65 | 78 74 66 6f 6e 74 28 6c |;.; te|xtfont(l| |00001700| 6f 6e 64 6f 6e 29 3b 20 | 74 65 78 74 73 69 7a 65 |ondon); |textsize| |00001710| 28 31 38 29 3b 20 74 65 | 78 74 66 61 63 65 28 5b |(18); te|xtface([| |00001720| 62 6f 6c 64 5d 29 3b 0d | 3b 20 20 20 74 65 78 74 |bold]);.|; text| |00001730| 20 3a 3d 20 27 44 61 72 | 54 65 72 6d 69 6e 61 6c | := 'Dar|Terminal| |00001740| 20 76 65 72 73 69 6f 6e | 20 2d 31 2e 39 20 20 41 | version| -1.9 A| |00001750| 75 67 75 73 74 20 31 39 | 38 34 27 3b 0d 3b 20 20 |ugust 19|84';.; | |00001760| 20 74 65 78 74 62 6f 78 | 28 40 74 65 78 74 2c 33 | textbox|(@text,3| |00001770| 37 2c 72 2c 74 65 6a 75 | 73 74 63 65 6e 74 65 72 |7,r,teju|stcenter| |00001780| 29 3b 0d 3b 0d 3b 20 20 | 20 64 69 73 73 62 69 74 |);.;.; | dissbit| |00001790| 73 28 62 69 74 73 2c 73 | 63 72 65 65 6e 70 6f 72 |s(bits,s|creenpor| |000017a0| 74 5e 2e 70 6f 72 74 62 | 69 74 73 2c 72 2c 72 29 |t^.portb|its,r,r)| |000017b0| 3b 20 20 20 20 28 2a 20 | 64 69 73 73 6f 6c 76 65 |; (* |dissolve| |000017c0| 20 69 74 20 69 6e 20 2a | 29 0d 3b 0d 3b 20 20 20 | it in *|).;.; | |000017d0| 72 65 70 65 61 74 20 75 | 6e 74 69 6c 20 67 65 74 |repeat u|ntil get| |000017e0| 6e 65 78 74 65 76 65 6e | 74 28 6d 64 6f 77 6e 6d |nexteven|t(mdownm| |000017f0| 61 73 6b 2b 6b 65 79 64 | 6f 77 6e 6d 61 73 6b 2c |ask+keyd|ownmask,| |00001800| 61 6e 65 76 65 6e 74 29 | 3b 20 28 2a 20 6c 65 74 |anevent)|; (* let| |00001810| 20 27 65 6d 20 67 61 77 | 6b 20 2a 29 0d 3b 0d 3b | 'em gaw|k *).;.;| |00001820| 20 20 20 72 67 20 3a 3d | 20 6e 65 77 72 67 6e 3b | rg :=| newrgn;| |00001830| 09 09 09 20 20 20 20 20 | 20 20 20 28 2a 20 67 65 |... | (* ge| |00001840| 74 20 61 20 72 65 67 69 | 6f 6e 20 74 6f 20 63 6c |t a regi|on to cl| |00001850| 69 70 20 77 69 74 68 20 | 2a 29 0d 3b 20 20 20 72 |ip with |*).; r| |00001860| 65 63 74 72 67 6e 28 72 | 67 2c 72 29 3b 09 09 09 |ectrgn(r|g,r);...| |00001870| 20 20 20 20 20 20 20 20 | 28 2a 20 61 73 20 61 20 | |(* as a | |00001880| 72 65 63 74 61 6e 67 6c | 65 20 2a 29 0d 3b 20 20 |rectangl|e *).; | |00001890| 20 70 61 69 6e 74 62 65 | 68 69 6e 64 28 77 69 6e | paintbe|hind(win| |000018a0| 64 6f 77 70 65 65 6b 28 | 66 72 6f 6e 74 77 69 6e |dowpeek(|frontwin| |000018b0| 64 6f 77 29 2c 72 67 29 | 3b 20 20 20 20 28 2a 20 |dow),rg)|; (* | |000018c0| 75 70 64 61 74 65 20 74 | 68 69 73 20 61 72 65 61 |update t|his area| |000018d0| 20 6f 66 20 73 63 72 65 | 65 6e 20 2a 29 0d 3b 0d | of scre|en *).;.| |000018e0| 3b 20 20 20 64 69 73 70 | 6f 73 65 72 67 6e 28 72 |; disp|osergn(r| |000018f0| 67 29 3b 0d 3b 20 20 20 | 64 69 73 70 6f 73 70 74 |g);.; |dispospt| |00001900| 72 28 70 74 72 28 62 69 | 74 73 2e 62 61 73 65 61 |r(ptr(bi|ts.basea| |00001910| 64 64 72 29 29 3b 0d 3b | 20 20 20 64 69 73 70 6f |ddr));.;| dispo| |00001920| 73 70 74 72 28 70 74 72 | 28 61 70 6f 72 74 29 29 |sptr(ptr|(aport))| |00001930| 3b 0d 3b 0d 3b 0d 3b 20 | 63 61 6c 6c 69 6e 67 20 |;.;.;.; |calling | |00001940| 66 72 6f 6d 20 6c 61 6e | 67 75 61 67 65 73 20 6f |from lan|guages o| |00001950| 74 68 65 72 20 74 68 61 | 6e 20 70 61 73 63 61 6c |ther tha|n pascal| |00001960| 3a 0d 3b 20 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |:.; ----|--------| |00001970| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------| |00001980| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 0d 3b 0d 3b |--------|----.;.;| |00001990| 20 74 68 69 73 20 72 6f | 75 74 69 6e 65 20 75 73 | this ro|utine us| |000019a0| 65 73 20 74 68 65 20 73 | 74 61 6e 64 61 72 64 20 |es the s|tandard | |000019b0| 4c 69 73 61 20 50 61 73 | 63 61 6c 20 63 61 6c 6c |Lisa Pas|cal call| |000019c0| 69 6e 67 20 73 65 71 75 | 65 6e 63 65 2e 20 20 74 |ing sequ|ence. t| |000019d0| 6f 20 63 6f 6e 76 65 72 | 74 20 69 74 20 74 6f 0d |o conver|t it to.| |000019e0| 3b 20 6d 6f 73 74 20 43 | 20 63 6f 6d 70 69 6c 65 |; most C| compile| |000019f0| 72 73 2c 20 79 6f 75 27 | 6c 6c 20 70 72 6f 62 61 |rs, you'|ll proba| |00001a00| 62 6c 79 20 6a 75 73 74 | 20 68 61 76 65 20 74 6f |bly just| have to| |00001a10| 20 64 65 6c 65 74 65 20 | 74 68 69 73 20 69 6e 73 | delete |this ins| |00001a20| 74 72 75 63 74 69 6f 6e | 20 66 72 6f 6d 0d 3b 20 |truction| from.; | |00001a30| 6e 65 61 72 20 74 68 65 | 20 65 6e 64 20 6f 66 20 |near the| end of | |00001a40| 74 68 65 20 6d 61 69 6e | 20 72 6f 75 74 69 6e 65 |the main| routine| |00001a50| 3a 0d 3b 20 20 20 20 20 | 20 20 61 64 64 2e 6c 20 |:.; | add.l | |00001a60| 23 70 73 69 7a 65 2c 53 | 50 09 09 20 20 20 20 20 |#psize,S|P.. | |00001a70| 20 20 20 3b 20 75 6e 73 | 74 61 63 6b 20 70 61 72 | ; uns|tack par| |00001a80| 61 6d 65 74 65 72 73 0d | 3b 0d 3b 20 69 27 64 20 |ameters.|;.; i'd | |00001a90| 62 65 20 76 65 72 79 20 | 69 6e 74 65 72 65 73 74 |be very |interest| |00001aa0| 65 64 20 69 6e 20 68 65 | 61 72 69 6e 67 20 61 62 |ed in he|aring ab| |00001ab0| 6f 75 74 20 73 75 63 63 | 65 73 73 66 75 6c 20 75 |out succ|essful u| |00001ac0| 73 65 73 20 6f 66 20 74 | 68 69 73 20 72 6f 75 74 |ses of t|his rout| |00001ad0| 69 6e 65 20 66 72 6f 6d | 0d 3b 20 6f 74 68 65 72 |ine from|.; other| |00001ae0| 20 6c 61 6e 67 75 61 67 | 65 73 2e 0d 3b 0d 3b 20 | languag|es..;.; | |00001af0| 73 70 65 65 64 20 6f 66 | 20 74 68 65 20 64 69 73 |speed of| the dis| |00001b00| 73 6f 6c 76 65 3a 0d 3b | 20 2d 2d 2d 2d 2d 2d 2d |solve:.;| -------| |00001b10| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 0d 3b |--------|------.;| |00001b20| 0d 3b 20 79 6f 75 20 6e | 65 65 64 20 74 6f 20 70 |.; you n|eed to p| |00001b30| 61 79 20 61 74 74 65 6e | 74 69 6f 6e 20 74 6f 20 |ay atten|tion to | |00001b40| 74 68 69 73 20 73 65 63 | 74 69 6f 6e 20 6f 6e 6c |this sec|tion onl| |00001b50| 79 20 69 66 3a 20 28 61 | 29 20 79 6f 75 20 77 61 |y if: (a|) you wa| |00001b60| 6e 74 20 74 68 65 20 64 | 69 73 73 6f 6c 76 65 0d |nt the d|issolve.| |00001b70| 3b 20 74 6f 20 72 75 6e | 20 61 73 20 66 61 73 74 |; to run| as fast| |00001b80| 20 61 73 20 69 74 20 63 | 61 6e 20 4f 52 20 28 62 | as it c|an OR (b| |00001b90| 29 20 79 6f 75 20 64 6f | 20 64 69 73 73 6f 6c 76 |) you do| dissolv| |00001ba0| 65 73 20 6f 66 20 76 61 | 72 69 6f 75 73 20 73 69 |es of va|rious si| |00001bb0| 7a 65 73 20 61 6e 64 20 | 77 61 6e 74 0d 3b 20 74 |zes and |want.; t| |00001bc0| 68 65 6d 20 74 6f 20 74 | 61 6b 65 20 70 72 6f 70 |hem to t|ake prop| |00001bd0| 6f 72 74 69 6f 6e 61 74 | 65 20 6c 65 6e 67 74 68 |ortionat|e length| |00001be0| 73 20 6f 66 20 74 69 6d | 65 2e 0d 3b 0d 3b 20 74 |s of tim|e..;.; t| |00001bf0| 68 65 72 65 20 61 72 65 | 20 33 20 6c 65 76 65 6c |here are| 3 level| |00001c00| 73 20 6f 66 20 73 70 65 | 65 64 3b 20 74 68 65 20 |s of spe|ed; the | |00001c10| 66 61 73 74 65 73 74 20 | 70 6f 73 73 69 62 6c 65 |fastest |possible| |00001c20| 20 6f 6e 65 20 69 73 20 | 63 68 6f 73 65 6e 20 66 | one is |chosen f| |00001c30| 6f 72 20 79 6f 75 3a 0d | 3b 20 28 31 29 20 61 6e |or you:.|; (1) an| |00001c40| 20 6f 72 64 69 6e 61 72 | 79 20 64 69 73 73 6f 6c | ordinar|y dissol| |00001c50| 76 65 20 77 69 6c 6c 20 | 77 6f 72 6b 20 77 68 65 |ve will |work whe| |00001c60| 6e 20 6d 6f 76 69 6e 67 | 20 66 72 6f 6d 20 61 6e |n moving| from an| |00001c70| 79 20 62 69 74 6d 61 70 | 20 74 6f 20 61 6e 79 20 |y bitmap| to any | |00001c80| 62 69 74 6d 61 70 2c 0d | 3b 20 20 20 20 20 69 6e |bitmap,.|; in| |00001c90| 63 6c 75 64 69 6e 67 20 | 6f 6e 20 74 68 65 20 4c |cluding |on the L| |00001ca0| 69 73 61 20 75 6e 64 65 | 72 20 4d 61 63 57 6f 72 |isa unde|r MacWor| |00001cb0| 6b 73 2e 20 20 74 68 69 | 73 20 77 69 6c 6c 20 64 |ks. thi|s will d| |00001cc0| 69 73 73 6f 6c 76 65 20 | 61 74 20 61 62 6f 75 74 |issolve |at about| |00001cd0| 20 34 39 0d 3b 20 20 20 | 20 20 6d 69 63 72 6f 73 | 49.; | micros| |00001ce0| 65 63 6f 6e 64 73 20 70 | 65 72 20 70 69 78 65 6c |econds p|er pixel| |00001cf0| 2e 20 20 61 20 72 65 63 | 74 61 6e 67 6c 65 20 6f |. a rec|tangle o| |00001d00| 6e 65 2d 71 75 61 72 74 | 65 72 20 74 68 65 20 73 |ne-quart|er the s| |00001d10| 69 7a 65 20 6f 66 20 74 | 68 65 20 73 63 72 65 65 |ize of t|he scree| |00001d20| 6e 0d 3b 20 20 20 20 20 | 77 69 6c 6c 20 64 69 73 |n.; |will dis| |00001d30| 73 6f 6c 76 65 20 69 6e | 20 6a 75 73 74 20 6f 76 |solve in| just ov| |00001d40| 65 72 20 74 77 6f 20 73 | 65 63 6f 6e 64 73 2e 20 |er two s|econds. | |00001d50| 20 74 68 65 20 73 70 65 | 65 64 20 70 65 72 20 70 | the spe|ed per p| |00001d60| 69 78 65 6c 20 77 69 6c | 6c 20 76 61 72 79 0d 3b |ixel wil|l vary.;| |00001d70| 20 20 20 20 20 73 6c 69 | 67 68 74 6c 79 2c 20 61 | sli|ghtly, a| |00001d80| 6e 64 20 77 69 6c 6c 20 | 62 65 20 6c 65 73 73 20 |nd will |be less | |00001d90| 69 66 20 79 6f 75 72 20 | 72 65 63 74 20 65 78 74 |if your |rect ext| |00001da0| 65 6e 74 73 20 61 72 65 | 20 63 6c 6f 73 65 20 74 |ents are| close t| |00001db0| 6f 20 62 75 74 20 6c 65 | 73 73 0d 3b 20 20 20 20 |o but le|ss.; | |00001dc0| 20 74 68 61 6e 20 70 6f | 77 65 72 73 20 6f 66 20 | than po|wers of | |00001dd0| 32 2e 0d 3b 20 28 32 29 | 20 74 68 65 20 64 69 73 |2..; (2)| the dis| |00001de0| 73 6f 6c 76 65 20 77 69 | 6c 6c 20 73 70 65 65 64 |solve wi|ll speed| |00001df0| 20 75 70 20 69 66 20 62 | 6f 74 68 20 74 68 65 20 | up if b|oth the | |00001e00| 73 6f 75 72 63 65 20 61 | 6e 64 20 64 65 73 74 69 |source a|nd desti| |00001e10| 6e 61 74 69 6f 6e 20 62 | 69 74 6d 61 70 73 20 68 |nation b|itmaps h| |00001e20| 61 76 65 0d 3b 20 20 20 | 20 20 72 6f 77 42 79 74 |ave.; | rowByt| |00001e30| 65 73 20 66 69 65 6c 64 | 73 20 77 68 69 63 68 20 |es field|s which | |00001e40| 61 72 65 20 70 6f 77 65 | 72 73 20 6f 66 20 74 77 |are powe|rs of tw| |00001e50| 6f 2e 20 20 69 66 20 79 | 6f 75 27 72 65 20 63 6f |o. if y|ou're co| |00001e60| 70 79 69 6e 67 20 74 6f | 20 74 68 65 20 73 63 72 |pying to| the scr| |00001e70| 65 65 6e 0d 3b 20 20 20 | 20 20 6f 6e 20 61 20 6d |een.; | on a m| |00001e80| 61 63 2c 20 74 68 65 20 | 72 6f 77 42 79 74 65 73 |ac, the |rowBytes| |00001e90| 20 66 69 65 6c 64 20 61 | 6c 72 65 61 64 79 20 73 | field a|lready s| |00001ea0| 61 74 69 73 66 69 65 73 | 20 74 68 69 73 2e 20 20 |atisfies| this. | |00001eb0| 73 6f 2c 20 6d 61 6b 65 | 20 79 6f 75 72 20 73 6f |so, make| your so| |00001ec0| 75 72 63 65 0d 3b 20 20 | 20 20 20 62 69 74 6d 61 |urce.; | bitma| |00001ed0| 70 20 74 68 65 20 72 69 | 67 68 74 20 77 69 64 74 |p the ri|ght widt| |00001ee0| 68 20 66 6f 72 20 61 20 | 63 68 65 61 70 20 73 70 |h for a |cheap sp| |00001ef0| 65 65 64 75 70 20 2d 2d | 20 61 62 6f 75 74 20 32 |eedup --| about 2| |00001f00| 30 25 20 66 61 73 74 65 | 72 2e 0d 3b 20 28 33 29 |0% faste|r..; (3)| |00001f10| 20 74 68 65 20 66 61 6e | 63 69 65 73 74 20 6c 65 | the fan|ciest le| |00001f20| 76 65 6c 20 69 73 20 69 | 6e 74 65 6e 64 65 64 20 |vel is i|ntended | |00001f30| 66 6f 72 20 63 6f 70 79 | 69 6e 67 20 74 68 65 20 |for copy|ing the | |00001f40| 77 68 6f 6c 65 20 73 63 | 72 65 65 6e 2e 20 20 69 |whole sc|reen. i| |00001f50| 74 27 6c 6c 20 70 61 69 | 6e 74 0d 3b 20 20 20 20 |t'll pai|nt.; | |00001f60| 20 69 74 20 69 6e 20 61 | 62 6f 75 74 20 33 2e 34 | it in a|bout 3.4| |00001f70| 20 73 65 63 6f 6e 64 73 | 20 28 31 39 20 6d 69 63 | seconds| (19 mic| |00001f80| 72 6f 73 65 63 6f 6e 64 | 73 20 70 65 72 20 70 69 |rosecond|s per pi| |00001f90| 78 65 6c 29 2e 20 20 61 | 63 74 75 61 6c 6c 79 2c |xel). a|ctually,| |00001fa0| 20 70 61 69 6e 74 69 6e | 67 0d 3b 20 20 20 20 20 | paintin|g.; | |00001fb0| 61 6e 79 20 72 65 63 74 | 61 6e 67 6c 65 20 77 68 |any rect|angle wh| |00001fc0| 69 63 68 20 69 73 20 74 | 68 65 20 66 75 6c 6c 20 |ich is t|he full | |00001fd0| 77 69 64 74 68 20 6f 66 | 20 74 68 65 20 73 63 72 |width of| the scr| |00001fe0| 65 65 6e 20 77 69 6c 6c | 20 72 75 6e 20 61 74 20 |een will| run at | |00001ff0| 74 68 69 73 0d 3b 20 20 | 20 20 20 73 70 65 65 64 |this.; | speed| |00002000| 2c 20 66 6f 72 20 77 68 | 61 74 20 74 68 61 74 27 |, for wh|at that'| |00002010| 73 20 77 6f 72 74 68 2e | 0d 3b 0d 3b 20 64 75 70 |s worth.|.;.; dup| |00002020| 6c 69 63 61 74 69 6f 6e | 20 61 6e 64 20 75 73 65 |lication| and use| |00002030| 20 6f 66 20 74 68 69 73 | 20 72 6f 75 74 69 6e 65 | of this| routine| |00002040| 3a 0d 3b 20 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |:.; ----|--------| |00002050| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------| |00002060| 2d 2d 2d 2d 2d 2d 2d 0d | 3b 0d 3b 20 74 68 69 73 |-------.|;.; this| |00002070| 20 69 73 20 66 72 65 65 | 77 61 72 65 2e 20 20 79 | is free|ware. y| |00002080| 6f 75 27 72 65 20 77 65 | 6c 63 6f 6d 65 20 74 6f |ou're we|lcome to| |00002090| 20 63 6f 70 79 20 69 74 | 20 61 6e 64 20 75 73 65 | copy it| and use| |000020a0| 20 69 74 20 69 6e 20 70 | 72 6f 67 72 61 6d 73 2e | it in p|rograms.| |000020b0| 20 20 79 6f 75 27 72 65 | 0d 3b 20 77 65 6c 63 6f | you're|.; welco| |000020c0| 6d 65 20 74 6f 20 6d 6f | 64 69 66 79 20 69 74 2c |me to mo|dify it,| |000020d0| 20 61 73 20 6c 6f 6e 67 | 20 61 73 20 79 6f 75 20 | as long| as you | |000020e0| 6c 65 61 76 65 20 65 76 | 65 72 79 74 68 69 6e 67 |leave ev|erything| |000020f0| 20 75 70 20 75 6e 74 69 | 6c 20 74 68 69 73 20 73 | up unti|l this s| |00002100| 65 63 74 69 6f 6e 0d 3b | 20 75 6e 63 68 61 6e 67 |ection.;| unchang| |00002110| 65 64 2e 20 20 69 27 64 | 20 62 65 20 76 65 72 79 |ed. i'd| be very| |00002120| 20 69 6e 74 65 72 65 73 | 74 65 64 20 69 6e 20 73 | interes|ted in s| |00002130| 65 65 69 6e 67 20 79 6f | 75 72 20 63 68 61 6e 67 |eeing yo|ur chang| |00002140| 65 73 2c 20 65 73 70 65 | 63 69 61 6c 6c 79 20 69 |es, espe|cially i| |00002150| 66 20 79 6f 75 0d 3b 20 | 66 69 6e 64 20 77 61 79 |f you.; |find way| |00002160| 73 20 74 6f 20 6d 61 6b | 65 20 74 68 65 20 63 65 |s to mak|e the ce| |00002170| 6e 74 72 61 6c 20 6c 6f | 6f 70 73 20 66 61 73 74 |ntral lo|ops fast| |00002180| 65 72 2e 20 20 79 6f 75 | 27 72 65 20 61 6c 73 6f |er. you|'re also| |00002190| 20 77 65 6c 63 6f 6d 65 | 20 74 6f 20 70 6f 72 74 | welcome| to port| |000021a0| 20 69 74 0d 3b 20 74 6f | 20 6f 74 68 65 72 20 6d | it.; to| other m| |000021b0| 61 63 68 69 6e 65 73 2f | 6c 61 6e 67 75 61 67 65 |achines/|language| |000021c0| 73 3b 20 69 27 64 20 61 | 70 70 72 65 63 69 61 74 |s; i'd a|ppreciat| |000021d0| 65 20 68 65 61 72 69 6e | 67 20 61 62 6f 75 74 20 |e hearin|g about | |000021e0| 65 66 66 6f 72 74 73 20 | 74 6f 20 64 6f 20 74 68 |efforts |to do th| |000021f0| 69 73 2e 0d 3b 0d 3b 20 | 74 68 69 73 20 69 73 20 |is..;.; |this is | |00002200| 22 66 72 65 65 77 61 72 | 65 22 3b 20 70 6c 65 61 |"freewar|e"; plea| |00002210| 73 65 20 70 61 79 20 6d | 65 20 69 66 20 79 6f 75 |se pay m|e if you| |00002220| 20 75 73 65 20 69 74 2e | 20 20 77 68 79 3f 0d 3b | use it.| why?.;| |00002230| 0d 3b 20 20 20 20 20 20 | 20 6f 20 69 66 20 79 6f |.; | o if yo| |00002240| 75 20 68 61 76 65 20 70 | 72 6f 62 6c 65 6d 73 20 |u have p|roblems | |00002250| 75 73 69 6e 67 20 69 74 | 2c 20 69 27 6c 6c 20 68 |using it|, i'll h| |00002260| 65 6c 70 20 79 6f 75 20 | 64 65 62 75 67 20 69 74 |elp you |debug it| |00002270| 2e 0d 3b 20 20 20 20 20 | 20 20 6f 20 69 27 6c 6c |..; | o i'll| |00002280| 20 73 65 6e 64 20 79 6f | 75 20 69 6d 70 72 6f 76 | send yo|u improv| |00002290| 65 64 2c 20 64 65 62 75 | 67 67 65 64 2c 20 66 61 |ed, debu|gged, fa| |000022a0| 73 74 65 72 20 76 65 72 | 73 69 6f 6e 73 2e 0d 3b |ster ver|sions..;| |000022b0| 20 20 20 20 20 20 20 6f | 20 69 27 6c 6c 20 74 65 | o| i'll te| |000022c0| 6c 6c 20 79 6f 75 20 61 | 62 6f 75 74 20 6f 74 68 |ll you a|bout oth| |000022d0| 65 72 20 70 72 6f 64 75 | 63 74 73 2e 20 20 74 68 |er produ|cts. th| |000022e0| 69 73 20 69 73 20 74 68 | 65 20 66 69 72 73 74 20 |is is th|e first | |000022f0| 74 68 69 6e 67 20 69 20 | 65 76 65 72 0d 3b 09 20 |thing i |ever.;. | |00002300| 20 77 72 6f 74 65 20 66 | 6f 72 20 74 68 65 20 4d | wrote f|or the M| |00002310| 61 63 3b 20 77 6f 75 6c | 64 6e 27 74 20 79 6f 75 |ac; woul|dn't you| |00002320| 20 6c 69 6b 65 20 74 6f | 20 73 65 65 20 77 68 61 | like to| see wha| |00002330| 74 20 65 6c 73 65 20 69 | 27 76 65 20 70 72 6f 64 |t else i|'ve prod| |00002340| 75 63 65 64 3f 0d 3b 09 | 20 20 73 65 6e 64 20 6d |uced?.;.| send m| |00002350| 65 20 73 6f 6d 65 20 70 | 6f 73 69 74 69 76 65 20 |e some p|ositive | |00002360| 66 65 65 64 62 61 63 6b | 21 0d 3b 0d 3b 20 68 6f |feedback|!.;.; ho| |00002370| 77 20 6d 75 63 68 20 73 | 68 6f 75 6c 64 20 79 6f |w much s|hould yo| |00002380| 75 20 70 61 79 3f 20 20 | 6d 79 20 73 75 67 67 65 |u pay? |my sugge| |00002390| 73 74 69 6f 6e 20 69 73 | 3a 0d 3b 20 20 20 20 20 |stion is|:.; | |000023a0| 20 20 28 63 6f 73 74 20 | 6f 66 20 6f 6e 65 20 63 | (cost |of one c| |000023b0| 6f 70 79 20 6f 66 20 74 | 68 65 20 70 72 6f 67 72 |opy of t|he progr| |000023c0| 61 6d 29 20 2a 20 28 6c | 6f 67 31 30 20 6f 66 20 |am) * (l|og10 of | |000023d0| 6e 75 6d 62 65 72 20 6f | 66 20 63 6f 70 69 65 73 |number o|f copies| |000023e0| 20 73 6f 6c 64 29 0d 3b | 20 69 66 20 74 68 65 20 | sold).;| if the | |000023f0| 73 75 62 72 6f 75 74 69 | 6e 65 20 69 73 20 61 6e |subrouti|ne is an| |00002400| 20 69 6e 74 65 67 72 61 | 6c 20 70 61 72 74 20 6f | integra|l part o| |00002410| 66 20 79 6f 75 72 20 70 | 72 6f 67 72 61 6d 2c 20 |f your p|rogram, | |00002420| 64 6f 75 62 6c 65 20 74 | 68 69 73 20 61 6d 6f 75 |double t|his amou| |00002430| 6e 74 2e 0d 3b 20 69 66 | 20 69 74 27 73 20 61 20 |nt..; if| it's a | |00002440| 66 72 69 6c 6c 20 28 65 | 2e 67 2e 2c 20 79 6f 75 |frill (e|.g., you| |00002450| 20 64 69 73 73 6f 6c 76 | 65 20 69 6e 20 79 6f 75 | dissolv|e in you| |00002460| 72 20 22 41 62 6f 75 74 | 20 4d 61 63 57 68 61 74 |r "About| MacWhat| |00002470| 65 76 65 72 22 29 2c 20 | 68 61 6c 76 65 20 69 74 |ever"), |halve it| |00002480| 2e 0d 3b 0d 3b 20 69 20 | 66 69 6e 64 20 69 74 20 |..;.; i |find it | |00002490| 68 61 72 64 20 74 6f 20 | 62 65 6c 69 65 76 65 20 |hard to |believe | |000024a0| 74 68 61 74 20 61 6e 79 | 20 64 61 6d 61 67 65 73 |that any| damages| |000024b0| 20 74 6f 20 79 6f 75 20 | 6f 72 20 61 6e 79 6f 6e | to you |or anyon| |000024c0| 65 20 65 6c 73 65 20 63 | 6f 75 6c 64 20 63 6f 6d |e else c|ould com| |000024d0| 65 0d 3b 20 66 72 6f 6d | 20 62 75 67 73 20 69 6e |e.; from| bugs in| |000024e0| 20 74 68 69 73 20 72 6f | 75 74 69 6e 65 2e 20 20 | this ro|utine. | |000024f0| 62 75 74 2c 20 61 6c 61 | 73 2c 20 77 68 65 74 68 |but, ala|s, wheth| |00002500| 65 72 20 6f 72 20 6e 6f | 74 20 79 6f 75 20 70 61 |er or no|t you pa| |00002510| 79 20 6d 65 2c 20 69 20 | 63 61 6e 27 74 20 62 65 |y me, i |can't be| |00002520| 0d 3b 20 6c 69 61 62 6c | 65 20 69 6e 20 61 6e 79 |.; liabl|e in any| |00002530| 20 77 61 79 20 66 6f 72 | 20 61 6e 79 20 70 72 6f | way for| any pro| |00002540| 62 6c 65 6d 73 20 69 6e | 20 69 74 2e 0d 3b 0d 3b |blems in| it..;.;| |00002550| 20 73 65 6e 64 20 63 6f | 6d 6d 65 6e 74 73 2c 20 | send co|mments, | |00002560| 63 6f 6e 74 72 69 62 75 | 74 69 6f 6e 73 2c 20 63 |contribu|tions, c| |00002570| 72 69 74 69 63 69 73 6d | 73 2c 20 6f 72 20 77 68 |riticism|s, or wh| |00002580| 61 74 65 76 65 72 20 74 | 6f 3a 0d 3b 20 20 20 20 |atever t|o:.; | |00002590| 20 20 20 6d 69 6b 65 20 | 6d 6f 72 74 6f 6e 0d 3b | mike |morton.;| |000025a0| 20 20 20 20 20 20 20 49 | 4e 46 4f 43 4f 4d 0d 3b | I|NFOCOM.;| |000025b0| 20 20 20 20 20 20 20 31 | 32 35 20 43 61 6d 62 72 | 1|25 Cambr| |000025c0| 69 64 67 65 50 61 72 6b | 20 44 72 2e 0d 3b 20 20 |idgePark| Dr..; | |000025d0| 20 20 20 20 20 43 61 6d | 62 72 69 64 67 65 2c 20 | Cam|bridge, | |000025e0| 4d 41 20 20 30 32 31 34 | 30 0d 3b 0d 3b 20 69 66 |MA 0214|0.;.; if| |000025f0| 2c 20 66 6f 72 20 73 6f | 6d 65 20 72 65 61 73 6f |, for so|me reaso| |00002600| 6e 2c 20 79 6f 75 20 6f | 6e 6c 79 20 68 61 76 65 |n, you o|nly have| |00002610| 20 61 20 68 61 72 64 20 | 63 6f 70 79 20 6f 66 20 | a hard |copy of | |00002620| 74 68 69 73 20 61 6e 64 | 20 77 6f 75 6c 64 20 6c |this and| would l| |00002630| 69 6b 65 20 61 0d 3b 20 | 73 6f 75 72 63 65 20 6f |ike a.; |source o| |00002640| 6e 20 61 20 64 69 73 6b | 65 74 74 65 2c 20 70 6c |n a disk|ette, pl| |00002650| 65 61 73 65 20 63 6f 6e | 74 61 63 74 3a 0d 3b 20 |ease con|tact:.; | |00002660| 20 20 20 20 20 20 4d 61 | 63 54 75 74 6f 72 0d 3b | Ma|cTutor.;| |00002670| 09 53 6f 75 72 63 65 20 | 43 6f 64 65 20 44 69 73 |.Source |Code Dis| |00002680| 6b 73 0d 3b 20 20 20 20 | 20 20 20 50 2e 4f 2e 20 |ks.; | P.O. | |00002690| 42 6f 78 20 38 34 36 0d | 3b 20 20 20 20 20 20 20 |Box 846.|; | |000026a0| 50 6c 61 63 65 6e 74 69 | 61 2c 20 43 41 2e 20 39 |Placenti|a, CA. 9| |000026b0| 32 36 37 30 0d 3b 20 20 | 20 20 20 20 20 28 37 31 |2670.; | (71| |000026c0| 34 29 20 35 37 39 2d 37 | 37 30 30 0d 3b 0d 0d 3b |4) 579-7|700.;..;| |000026d0| 0d 3b 20 74 68 69 6e 67 | 73 20 74 6f 20 74 68 69 |.; thing|s to thi| |000026e0| 6e 6b 20 61 62 6f 75 74 | 3a 0d 3b 20 2d 2d 2d 2d |nk about|:.; ----| |000026f0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------| |00002700| 2d 0d 3b 0d 3b 20 6f 20 | 20 63 6c 65 61 6e 20 75 |-.;.; o | clean u| |00002710| 70 20 74 68 65 20 72 65 | 67 69 73 74 65 72 20 75 |p the re|gister u| |00002720| 73 61 67 65 20 28 61 73 | 20 69 66 20 69 27 6c 6c |sage (as| if i'll| |00002730| 20 65 76 65 72 20 61 63 | 74 75 61 6c 6c 79 20 67 | ever ac|tually g| |00002740| 65 74 20 61 72 6f 75 6e | 64 20 74 6f 20 74 68 69 |et aroun|d to thi| |00002750| 73 29 0d 3b 20 6f 20 20 | 75 73 65 20 61 20 64 79 |s).; o |use a dy| |00002760| 6e 61 6d 69 63 61 6c 6c | 79 2d 62 75 69 6c 74 20 |namicall|y-built | |00002770| 74 61 62 6c 65 20 74 6f | 20 61 76 6f 69 64 20 74 |table to| avoid t| |00002780| 68 65 20 6d 75 6c 74 69 | 70 6c 79 20 69 6e 73 74 |he multi|ply inst| |00002790| 72 75 63 74 69 6f 6e 20 | 69 6e 20 74 68 65 20 67 |ruction |in the g| |000027a0| 65 6e 65 72 61 6c 20 63 | 61 73 65 2e 0d 3b 20 20 |eneral c|ase..; | |000027b0| 20 20 74 68 69 73 20 6d | 61 79 20 6e 6f 74 20 62 | this m|ay not b| |000027c0| 65 20 61 20 67 72 65 61 | 74 20 69 64 65 61 20 73 |e a grea|t idea s| |000027d0| 69 6e 63 65 20 6e 6f 74 | 20 65 76 65 72 79 6f 6e |ince not| everyon| |000027e0| 65 20 63 61 6e 20 61 66 | 66 6f 72 64 20 74 68 61 |e can af|ford tha| |000027f0| 74 20 6d 75 63 68 20 73 | 70 61 63 65 2e 0d 3b 20 |t much s|pace..; | |00002800| 6f 20 20 61 64 61 70 74 | 20 74 68 65 20 72 6f 75 |o adapt| the rou| |00002810| 74 69 6e 65 20 74 6f 20 | 64 6f 20 74 72 61 6e 73 |tine to |do trans| |00002820| 66 65 72 20 6d 6f 64 65 | 73 2e 20 20 65 73 70 65 |fer mode|s. espe| |00002830| 63 69 61 6c 6c 79 20 70 | 61 74 74 65 72 6e 20 6d |cially p|attern m| |00002840| 6f 64 65 73 2c 20 77 69 | 74 68 20 6e 6f 20 73 6f |odes, wi|th no so| |00002850| 75 72 63 65 2e 0d 3b 20 | 20 20 20 69 74 27 64 20 |urce..; | it'd | |00002860| 72 75 6e 20 73 69 67 6e | 69 66 69 63 61 6e 74 6c |run sign|ificantl| |00002870| 79 20 66 61 73 74 65 72 | 20 64 6f 69 6e 67 20 61 |y faster| doing a| |00002880| 20 66 69 6c 6c 20 6f 66 | 20 6a 75 73 74 20 62 6c | fill of| just bl| |00002890| 61 63 6b 20 6f 72 20 77 | 68 69 74 65 21 09 20 61 |ack or w|hite!. a| |000028a0| 6e 64 20 70 61 74 58 6f | 72 0d 3b 20 20 20 20 77 |nd patXo|r.; w| |000028b0| 6f 75 6c 64 20 62 65 20 | 70 72 65 74 74 79 20 63 |ould be |pretty c| |000028c0| 6f 6f 6c 20 74 6f 6f 20 | 28 73 65 65 20 61 6c 73 |ool too |(see als| |000028d0| 6f 20 74 68 65 20 58 4f | 52 20 69 64 65 61 20 62 |o the XO|R idea b| |000028e0| 65 6c 6f 77 29 2e 0d 3b | 20 6f 20 20 63 6f 6e 73 |elow)..;| o cons| |000028f0| 69 64 65 72 20 61 20 66 | 72 6f 6e 74 2d 65 6e 64 |ider a f|ront-end| |00002900| 20 77 68 69 63 68 20 64 | 6f 65 73 20 63 6c 69 70 | which d|oes clip| |00002910| 70 69 6e 67 20 28 6a 75 | 73 74 20 6c 69 6b 65 20 |ping (ju|st like | |00002920| 63 6f 70 79 42 69 74 73 | 29 20 62 79 3a 0d 3b 20 |copyBits|) by:.; | |00002930| 20 20 20 20 20 20 2d 20 | 61 6c 6c 6f 63 61 74 65 | - |allocate| |00002940| 20 79 65 74 20 61 6e 6f | 74 68 65 72 20 6f 66 66 | yet ano|ther off| |00002950| 73 63 72 65 65 6e 20 62 | 69 74 6d 61 70 2c 20 77 |screen b|itmap, w| |00002960| 68 6f 73 65 20 62 6f 75 | 6e 64 73 20 61 72 65 20 |hose bou|nds are | |00002970| 74 68 65 20 69 6e 74 65 | 72 73 65 63 74 69 6f 6e |the inte|rsection| |00002980| 20 6f 66 0d 3b 09 20 20 | 74 68 65 20 64 65 73 74 | of.;. |the dest| |00002990| 69 6e 61 74 69 6f 6e 20 | 72 65 63 74 20 77 69 74 |ination |rect wit| |000029a0| 68 20 74 68 65 20 62 6f | 75 6e 64 69 6e 67 20 62 |h the bo|unding b| |000029b0| 6f 78 20 6f 66 20 74 68 | 65 20 64 65 73 74 69 6e |ox of th|e destin| |000029c0| 61 74 69 6f 6e 27 73 20 | 63 6c 69 70 70 69 6e 67 |ation's |clipping| |000029d0| 20 72 67 6e 2e 0d 3b 20 | 20 20 20 20 20 20 2d 20 | rgn..; | - | |000029e0| 63 6f 70 79 20 66 72 6f | 6d 20 74 68 65 20 64 65 |copy fro|m the de| |000029f0| 73 74 69 6e 61 74 69 6f | 6e 27 73 20 62 69 74 6d |stinatio|n's bitm| |00002a00| 61 70 20 69 6e 74 6f 20 | 74 68 65 20 74 65 6d 70 |ap into |the temp| |00002a10| 6f 72 61 72 79 20 62 69 | 74 6d 61 70 2e 0d 3b 20 |orary bi|tmap..; | |00002a20| 20 20 20 20 20 20 2d 20 | 64 6f 20 61 20 63 6f 70 | - |do a cop| |00002a30| 79 42 69 74 73 20 66 72 | 6f 6d 20 74 68 65 20 73 |yBits fr|om the s| |00002a40| 6f 75 72 63 65 20 74 6f | 20 74 68 65 20 74 65 6d |ource to| the tem| |00002a50| 70 2c 20 77 69 74 68 20 | 74 68 65 20 72 65 71 75 |p, with |the requ| |00002a60| 65 73 74 65 64 20 6d 61 | 73 6b 69 6e 67 20 72 65 |ested ma|sking re| |00002a70| 67 69 6f 6e 2e 0d 3b 20 | 20 20 20 20 20 20 2d 20 |gion..; | - | |00002a80| 64 69 73 73 6f 6c 76 65 | 20 66 72 6f 6d 20 74 68 |dissolve| from th| |00002a90| 65 20 74 65 6d 70 20 74 | 6f 20 74 68 65 20 64 65 |e temp t|o the de| |00002aa0| 73 74 69 6e 61 74 69 6f | 6e 2c 20 74 68 75 73 20 |stinatio|n, thus | |00002ab0| 61 63 74 75 61 6c 6c 79 | 20 64 69 73 73 6f 6c 76 |actually| dissolv| |00002ac0| 69 6e 67 20 74 68 61 74 | 20 77 68 6f 6c 65 0d 3b |ing that| whole.;| |00002ad0| 09 20 20 72 65 63 74 2c | 20 62 75 74 20 63 68 61 |. rect,| but cha| |00002ae0| 6e 67 69 6e 67 20 6f 6e | 6c 79 20 74 68 65 20 63 |nging on|ly the c| |00002af0| 6c 69 70 70 65 64 20 73 | 74 75 66 66 2e 0d 3b 20 |lipped s|tuff..; | |00002b00| 6f 20 20 61 20 6e 69 66 | 74 79 20 77 61 79 20 74 |o a nif|ty way t| |00002b10| 6f 20 73 70 65 65 64 20 | 75 70 20 74 68 69 6e 67 |o speed |up thing| |00002b20| 73 20 77 6f 75 6c 64 20 | 62 65 20 74 6f 20 58 4f |s would |be to XO| |00002b30| 52 20 74 68 65 20 64 65 | 73 74 69 6e 61 74 69 6f |R the de|stinatio| |00002b40| 6e 20 69 6e 74 6f 20 74 | 68 65 20 73 6f 75 72 63 |n into t|he sourc| |00002b50| 65 20 5b 73 69 63 21 5d | 2e 0d 3b 20 20 20 20 74 |e [sic!]|..; t| |00002b60| 68 65 6e 20 74 68 65 20 | 6d 61 69 6e 20 6c 6f 6f |hen the |main loo| |00002b70| 70 20 64 6f 65 73 6e 27 | 74 20 68 61 76 65 20 74 |p doesn'|t have t| |00002b80| 6f 20 63 6f 70 79 20 61 | 20 62 69 74 3b 20 69 74 |o copy a| bit; it| |00002b90| 20 6a 75 73 74 20 74 65 | 73 74 73 20 69 66 20 74 | just te|sts if t| |00002ba0| 68 65 20 62 69 74 20 69 | 73 20 4f 4e 20 69 6e 20 |he bit i|s ON in | |00002bb0| 74 68 65 0d 3b 20 20 20 | 20 61 6c 74 65 72 65 64 |the.; | altered| |00002bc0| 20 73 6f 75 72 63 65 20 | 62 69 74 6d 61 70 20 61 | source |bitmap a| |00002bd0| 6e 64 2c 20 69 66 20 73 | 6f 2c 20 54 4f 47 47 4c |nd, if s|o, TOGGL| |00002be0| 45 53 20 69 74 20 69 6e | 20 74 68 65 20 64 65 73 |ES it in| the des| |00002bf0| 74 69 6e 61 74 69 6f 6e | 2e 20 20 28 69 2e 65 2e |tination|. (i.e.| |00002c00| 2c 20 69 74 20 64 6f 65 | 73 20 61 0d 3b 20 20 20 |, it doe|s a.; | |00002c10| 20 73 72 63 58 6f 72 20 | 6f 70 65 72 61 74 69 6f | srcXor |operatio| |00002c20| 6e 29 2e 09 20 74 6f 20 | 72 65 70 61 69 72 20 74 |n).. to |repair t| |00002c30| 68 65 20 73 6f 75 72 63 | 65 20 62 69 74 6d 61 70 |he sourc|e bitmap| |00002c40| 2c 20 61 20 74 68 69 72 | 64 20 58 4f 52 20 66 72 |, a thir|d XOR fr| |00002c50| 6f 6d 20 74 68 65 20 64 | 65 73 74 69 6e 61 74 69 |om the d|estinati| |00002c60| 6f 6e 20 74 6f 0d 3b 20 | 20 20 20 74 68 65 20 73 |on to.; | the s| |00002c70| 6f 75 72 63 65 20 73 68 | 6f 75 6c 64 20 64 6f 20 |ource sh|ould do | |00002c80| 69 74 20 5b 61 6e 79 20 | 6f 6c 64 2d 74 69 6d 65 |it [any |old-time| |00002c90| 72 20 77 69 6c 6c 20 72 | 65 63 6f 67 6e 69 7a 65 |r will r|ecognize| |00002ca0| 20 74 68 69 73 20 74 72 | 69 70 6c 65 20 58 4f 52 | this tr|iple XOR| |00002cb0| 20 61 73 20 74 68 65 20 | 62 65 73 74 0d 3b 20 20 | as the |best.; | |00002cc0| 20 20 77 61 79 20 74 6f | 20 73 77 61 70 20 74 77 | way to| swap tw| |00002cd0| 6f 20 72 65 67 69 73 74 | 65 72 73 2e 5d 20 20 74 |o regist|ers.] t| |00002ce0| 68 65 20 74 72 69 63 6b | 20 69 73 20 6d 61 6b 69 |he trick| is maki| |00002cf0| 6e 67 20 74 68 65 20 69 | 6e 76 69 73 69 62 6c 65 |ng the i|nvisible| |00002d00| 20 58 4f 52 20 72 75 6e | 20 73 6f 20 66 61 73 74 | XOR run| so fast| |00002d10| 20 74 68 61 74 0d 3b 20 | 20 20 20 74 68 65 20 74 | that.; | the t| |00002d20| 69 6d 65 20 74 6f 20 64 | 6f 20 69 74 20 69 73 20 |ime to d|o it is | |00002d30| 6c 65 73 73 20 74 68 61 | 6e 20 74 68 65 20 73 61 |less tha|n the sa| |00002d40| 76 69 6e 67 73 20 69 6e | 20 74 68 65 20 76 69 73 |vings in| the vis| |00002d50| 69 62 6c 65 20 70 61 72 | 74 2e 20 20 6f 72 20 70 |ible par|t. or p| |00002d60| 65 72 68 61 70 73 20 74 | 68 65 20 62 61 74 63 68 |erhaps t|he batch| |00002d70| 0d 3b 20 20 20 20 58 4f | 52 73 20 63 6f 75 6c 64 |.; XO|Rs could| |00002d80| 20 62 65 20 64 6f 6e 65 | 20 69 6e 20 73 70 61 72 | be done| in spar| |00002d90| 65 2d 74 69 6d 65 2e 2e | 2e 0d 3b 20 6f 20 20 69 |e-time..|..; o i| |00002da0| 6d 70 6c 65 6d 65 6e 74 | 20 61 20 70 61 72 74 69 |mplement| a parti| |00002db0| 61 6c 20 64 69 73 73 6f | 6c 76 65 2e 20 20 74 68 |al disso|lve. th| |00002dc0| 69 73 20 77 6f 75 6c 64 | 20 6c 65 74 20 61 6c 65 |is would| let ale| |00002dd0| 78 20 61 6e 69 6d 61 74 | 65 20 73 74 61 72 20 74 |x animat|e star t| |00002de0| 72 65 6b 2d 73 74 79 6c | 65 20 74 65 6c 65 70 6f |rek-styl|e telepo| |00002df0| 72 74 69 6e 67 2e 0d 3b | 20 20 20 20 74 68 65 72 |rting..;| ther| |00002e00| 65 20 61 72 65 20 61 20 | 6c 6f 74 20 6f 66 20 77 |e are a |lot of w| |00002e10| 61 79 73 20 74 6f 20 64 | 6f 20 74 68 69 73 2e 20 |ays to d|o this. | |00002e20| 20 74 68 65 20 65 61 73 | 69 65 73 74 20 6d 69 67 | the eas|iest mig| |00002e30| 68 74 20 62 65 20 74 6f | 20 69 6e 63 6c 75 64 65 |ht be to| include| |00002e40| 20 61 20 63 6f 75 6e 74 | 65 72 20 69 6e 20 74 68 | a count|er in th| |00002e50| 65 0d 3b 20 20 20 20 6c | 6f 6f 70 20 28 22 61 20 |e.; l|oop ("a | |00002e60| 72 65 67 69 73 74 65 72 | 21 09 20 6d 79 20 6b 69 |register|!. my ki| |00002e70| 6e 67 64 6f 6d 20 66 6f | 72 20 61 20 72 65 67 69 |ngdom fo|r a regi| |00002e80| 73 74 65 72 21 22 29 2e | 20 20 61 6c 74 65 72 6e |ster!").| altern| |00002e90| 61 74 65 6c 79 2c 20 77 | 65 20 63 6f 75 6c 64 20 |ately, w|e could | |00002ea0| 61 73 73 75 6d 65 20 74 | 68 61 74 0d 3b 20 20 20 |assume t|hat.; | |00002eb0| 20 74 68 65 20 6c 69 73 | 74 20 6f 66 20 73 74 61 | the lis|t of sta| |00002ec0| 72 74 69 6e 67 20 61 6e | 64 20 65 6e 64 69 6e 67 |rting an|d ending| |00002ed0| 20 70 6f 69 6e 74 73 20 | 63 6f 75 6c 64 20 62 65 | points |could be| |00002ee0| 20 6c 69 6d 69 74 65 64 | 2c 20 61 6c 6c 6f 77 69 | limited|, allowi| |00002ef0| 6e 67 20 61 20 74 61 62 | 6c 65 2d 62 61 73 65 64 |ng a tab|le-based| |00002f00| 20 73 79 73 74 65 6d 2e | 0d 3b 20 20 20 20 74 68 | system.|.; th| |00002f10| 69 73 20 69 73 20 73 6f | 6d 65 74 68 69 6e 67 20 |is is so|mething | |00002f20| 77 6f 72 74 68 20 6c 6f | 6f 6b 69 6e 67 20 69 6e |worth lo|oking in| |00002f30| 74 6f 2c 20 62 75 74 20 | 63 6f 75 6c 64 20 62 65 |to, but |could be| |00002f40| 20 72 65 61 6c 20 64 69 | 66 66 69 63 75 6c 74 2e | real di|fficult.| |00002f50| 0d 3b 20 6f 20 20 6c 6f | 6f 6b 20 61 74 20 72 65 |.; o lo|ok at re| |00002f60| 61 72 72 61 6e 67 69 6e | 67 20 69 6e 73 74 72 75 |arrangin|g instru| |00002f70| 63 74 69 6f 6e 73 20 73 | 6f 20 43 50 55 2d 69 6e |ctions s|o CPU-in| |00002f80| 74 65 6e 73 69 76 65 20 | 6f 6e 65 73 20 61 72 65 |tensive |ones are| |00002f90| 6e 27 74 20 67 72 6f 75 | 70 65 64 2c 20 61 6c 6c |n't grou|ped, all| |00002fa0| 6f 77 69 6e 67 20 75 73 | 20 74 6f 0d 3b 20 20 20 |owing us| to.; | |00002fb0| 20 73 6e 65 61 6b 20 69 | 6e 20 62 65 74 77 65 65 | sneak i|n betwee| |00002fc0| 6e 20 76 69 64 65 6f 20 | 63 79 63 6c 65 73 20 6d |n video |cycles m| |00002fd0| 6f 72 65 20 6f 66 74 65 | 6e 2e 0d 3b 20 6f 20 20 |ore ofte|n..; o | |00002fe0| 61 64 64 20 73 6f 6d 65 | 20 72 65 61 6c 20 65 72 |add some| real er| |00002ff0| 72 6f 72 2d 68 61 6e 64 | 6c 69 6e 67 2e 20 20 68 |ror-hand|ling. h| |00003000| 6f 77 20 73 68 6f 75 6c | 64 20 77 65 20 64 6f 20 |ow shoul|d we do | |00003010| 74 68 69 73 3f 20 20 72 | 65 74 75 72 6e 20 61 20 |this? r|eturn a | |00003020| 73 74 61 74 75 73 3f 20 | 20 66 61 75 6c 74 3f 20 |status? | fault? | |00003030| 20 77 65 0d 3b 20 20 20 | 20 63 6f 75 6c 64 20 61 | we.; | could a| |00003040| 6c 73 6f 20 72 65 74 75 | 72 6e 20 69 6e 66 6f 20 |lso retu|rn info | |00003050| 74 6f 20 6f 75 72 20 63 | 61 6c 6c 65 72 20 6f 6e |to our c|aller on| |00003060| 20 77 68 69 63 68 20 6f | 66 20 74 68 65 20 74 68 | which o|f the th| |00003070| 72 65 65 20 6c 6f 6f 70 | 73 20 67 6f 74 20 75 73 |ree loop|s got us| |00003080| 65 64 2c 20 73 6f 20 74 | 68 65 79 20 6b 6e 6f 77 |ed, so t|hey know| |00003090| 0d 3b 20 20 20 20 74 68 | 65 79 27 72 65 20 67 65 |.; th|ey're ge| |000030a0| 74 74 69 6e 67 20 74 68 | 65 20 73 70 65 65 64 20 |tting th|e speed | |000030b0| 74 68 65 79 20 77 61 6e | 74 2e 0d 3b 20 6f 20 20 |they wan|t..; o | |000030c0| 64 6f 6e 27 74 20 75 73 | 65 20 74 68 65 20 42 49 |don't us|e the BI| |000030d0| 54 57 49 44 54 48 20 72 | 6f 75 74 69 6e 65 20 74 |TWIDTH r|outine t| |000030e0| 6f 20 74 65 73 74 20 66 | 6f 72 20 65 78 61 63 74 |o test f|or exact| |000030f0| 20 70 6f 77 65 72 73 20 | 6f 66 20 74 77 6f 20 69 | powers |of two i| |00003100| 6e 20 4d 55 4c 43 48 4b | 2e 20 20 61 20 6e 75 6d |n MULCHK|. a num| |00003110| 62 65 72 20 58 5d 0d 3b | 20 20 20 20 69 73 20 61 |ber X].;| is a| |00003120| 6e 20 65 78 61 63 74 20 | 70 6f 77 65 72 20 6f 66 |n exact |power of| |00003130| 20 74 77 6f 20 69 66 20 | 28 78 20 26 20 2d 78 29 | two if |(x & -x)| |00003140| 20 65 71 75 61 6c 73 20 | 78 2e 0d 3b 0d 3b 0d 3b | equals |x..;.;.;| |00003150| 0d 3b 20 20 20 20 20 20 | 20 2d 2d 20 65 6e 64 20 |.; | -- end | |00003160| 6f 66 20 69 6e 74 72 6f | 64 75 63 74 69 6f 6e 3b |of intro|duction;| |00003170| 20 72 65 61 6c 20 73 74 | 75 66 66 20 73 74 61 72 | real st|uff star| |00003180| 74 73 20 68 65 72 65 20 | 2d 2d 0d 3b 0d 3b 0d 3b |ts here |--.;.;.;| |00003190| 0d 3b 20 44 49 53 53 42 | 49 54 53 20 53 55 42 52 |.; DISSB|ITS SUBR| |000031a0| 4f 55 54 49 4e 45 0d 3b | 20 4d 44 53 20 41 53 53 |OUTINE.;| MDS ASS| |000031b0| 45 4d 42 4c 45 52 20 56 | 45 52 53 49 4f 4e 0d 3b |EMBLER V|ERSION.;| |000031c0| 20 43 6f 6e 76 65 72 74 | 65 64 20 62 79 20 44 61 | Convert|ed by Da| |000031d0| 76 69 64 20 45 2e 20 53 | 6d 69 74 68 20 66 6f 72 |vid E. S|mith for| |000031e0| 20 4d 61 63 54 75 74 6f | 72 2e 0d 3b 0d 3b 0d 09 | MacTuto|r..;.;..| |000031f0| 78 64 65 66 09 64 69 73 | 73 42 69 74 73 0d 09 0d |xdef.dis|sBits...| |00003200| 09 49 6e 63 6c 75 64 65 | 20 51 75 69 63 6b 45 71 |.Include| QuickEq| |00003210| 75 2e 44 09 3b 20 4d 44 | 53 20 74 6f 6f 6c 62 6f |u.D.; MD|S toolbo| |00003220| 78 20 65 71 75 61 74 65 | 73 20 61 6e 64 20 74 72 |x equate|s and tr| |00003230| 61 70 73 0d 09 49 6e 63 | 6c 75 64 65 20 53 79 73 |aps..Inc|lude Sys| |00003240| 45 71 75 2e 44 0d 09 49 | 6e 63 6c 75 64 65 20 54 |Equ.D..I|nclude T| |00003250| 6f 6f 6c 45 71 75 2e 44 | 0d 09 49 6e 63 6c 75 64 |oolEqu.D|..Includ| |00003260| 65 20 4d 61 63 54 72 61 | 70 73 2e 44 0d 0d 09 4d |e MacTra|ps.D...M| |00003270| 41 43 52 4f 20 2e 65 71 | 75 20 3d 20 65 71 75 7c |ACRO .eq|u = equ|| |00003280| 09 3b 20 63 6f 6e 76 65 | 72 74 20 4c 69 73 61 20 |.; conve|rt Lisa | |00003290| 61 73 73 65 6d 62 6c 65 | 72 20 73 74 75 66 66 20 |assemble|r stuff | |000032a0| 74 6f 20 4d 44 53 20 4d | 61 63 0d 09 4d 41 43 52 |to MDS M|ac..MACR| |000032b0| 4f 20 5f 68 69 64 65 63 | 75 72 73 20 3d 20 5f 48 |O _hidec|urs = _H| |000032c0| 69 64 65 43 75 72 73 6f | 72 7c 0d 09 4d 41 43 52 |ideCurso|r|..MACR| |000032d0| 4f 20 5f 73 68 6f 77 63 | 75 72 73 20 3d 20 5f 53 |O _showc|urs = _S| |000032e0| 68 6f 77 43 75 72 73 6f | 72 7c 0d 09 0d 3b 0d 3b |howCurso|r|...;.;| |000032f0| 20 64 65 66 69 6e 69 74 | 69 6f 6e 73 20 6f 66 20 | definit|ions of | |00003300| 74 68 65 20 22 6f 75 72 | 73 22 20 72 65 63 6f 72 |the "our|s" recor| |00003310| 64 3a 20 74 68 69 73 20 | 73 74 72 75 63 74 75 72 |d: this |structur| |00003320| 65 2c 20 6f 66 20 77 68 | 69 63 68 20 74 68 65 72 |e, of wh|ich ther| |00003330| 65 20 61 72 65 20 74 77 | 6f 20 63 6f 70 69 65 73 |e are tw|o copies| |00003340| 20 69 6e 0d 3b 20 6f 75 | 72 20 73 74 61 63 6b 20 | in.; ou|r stack | |00003350| 66 72 61 6d 65 2c 20 69 | 73 20 61 20 73 6f 72 74 |frame, i|s a sort| |00003360| 20 6f 66 20 62 69 74 6d | 61 70 3a 0d 3b 0d 0d 6f | of bitm|ap:.;..o| |00003370| 52 6f 77 73 20 20 20 2e | 65 71 75 20 30 09 09 09 |Rows .|equ 0...| |00003380| 20 20 20 20 20 20 20 20 | 3b 20 28 77 6f 72 64 29 | |; (word)| |00003390| 20 6e 75 6d 62 65 72 20 | 6f 66 20 6c 61 73 74 20 | number |of last | |000033a0| 72 6f 77 20 28 66 69 72 | 73 74 20 69 73 20 30 29 |row (fir|st is 0)| |000033b0| 0d 6f 43 6f 6c 73 20 20 | 20 2e 65 71 75 20 6f 52 |.oCols | .equ oR| |000033c0| 6f 77 73 2b 32 09 09 20 | 20 20 20 20 20 20 20 3b |ows+2.. | ;| |000033d0| 20 28 77 6f 72 64 29 20 | 6e 75 6d 62 65 72 20 6f | (word) |number o| |000033e0| 66 20 6c 61 73 74 20 63 | 6f 6c 75 6d 6e 20 28 66 |f last c|olumn (f| |000033f0| 69 72 73 74 20 69 73 20 | 30 29 0d 6f 4c 62 69 74 |irst is |0).oLbit| |00003400| 73 20 20 2e 65 71 75 20 | 6f 43 6f 6c 73 2b 32 09 |s .equ |oCols+2.| |00003410| 09 20 20 20 20 20 20 20 | 20 3b 20 28 77 6f 72 64 |. | ; (word| |00003420| 29 20 73 69 7a 65 20 6f | 66 20 6c 65 66 74 20 6d |) size o|f left m| |00003430| 61 72 67 69 6e 20 77 69 | 74 68 69 6e 20 31 73 74 |argin wi|thin 1st| |00003440| 20 62 79 74 65 0d 6f 53 | 74 72 69 64 65 20 2e 65 | byte.oS|tride .e| |00003450| 71 75 20 6f 4c 62 69 74 | 73 2b 32 09 09 20 20 20 |qu oLbit|s+2.. | |00003460| 20 20 20 20 20 3b 20 28 | 77 6f 72 64 29 20 73 74 | ; (|word) st| |00003470| 72 69 64 65 20 69 6e 20 | 6d 65 6d 6f 72 79 20 66 |ride in |memory f| |00003480| 72 6f 6d 20 72 6f 77 20 | 74 6f 20 72 6f 77 0d 6f |rom row |to row.o| |00003490| 42 61 73 65 20 20 20 2e | 65 71 75 20 6f 53 74 72 |Base .|equ oStr| |000034a0| 69 64 65 2b 32 09 09 20 | 20 20 20 20 20 20 20 3b |ide+2.. | ;| |000034b0| 20 28 6c 6f 6e 67 29 20 | 62 61 73 65 20 61 64 64 | (long) |base add| |000034c0| 72 65 73 73 20 6f 66 20 | 62 69 74 6d 61 70 0d 0d |ress of |bitmap..| |000034d0| 6f 73 69 7a 65 20 20 20 | 2e 65 71 75 20 6f 42 61 |osize |.equ oBa| |000034e0| 73 65 2b 34 09 09 20 20 | 20 20 20 20 20 20 3b 20 |se+4.. | ; | |000034f0| 73 69 7a 65 2c 20 69 6e | 20 62 79 74 65 73 2c 20 |size, in| bytes, | |00003500| 6f 66 20 22 6f 75 72 73 | 22 20 72 65 63 6f 72 64 |of "ours|" record| |00003510| 0d 0d 3b 0d 3b 20 73 74 | 61 63 6b 20 66 72 61 6d |..;.; st|ack fram| |00003520| 65 20 65 6c 65 6d 65 6e | 74 73 3a 0d 3b 0d 0d 73 |e elemen|ts:.;..s| |00003530| 72 63 4f 75 72 73 20 2e | 65 71 75 20 2d 6f 73 69 |rcOurs .|equ -osi| |00003540| 7a 65 09 09 20 20 20 20 | 20 20 20 20 3b 20 28 6f |ze.. | ; (o| |00003550| 73 69 7a 65 29 20 6f 75 | 72 20 76 69 65 77 20 6f |size) ou|r view o| |00003560| 66 20 73 6f 75 72 63 65 | 20 62 69 74 73 0d 64 73 |f source| bits.ds| |00003570| 74 4f 75 72 73 20 2e 65 | 71 75 20 73 72 63 4f 75 |tOurs .e|qu srcOu| |00003580| 72 73 2d 6f 73 69 7a 65 | 09 20 20 20 20 20 20 20 |rs-osize|. | |00003590| 20 3b 20 28 6f 73 69 7a | 65 29 20 6f 75 72 20 76 | ; (osiz|e) our v| |000035a0| 69 65 77 20 6f 66 20 74 | 61 72 67 65 74 20 62 69 |iew of t|arget bi| |000035b0| 74 73 0d 0d 73 66 6c 61 | 73 74 20 20 2e 65 71 75 |ts..sfla|st .equ| |000035c0| 20 64 73 74 4f 75 72 73 | 09 09 20 20 20 20 20 20 | dstOurs|.. | |000035d0| 20 20 3b 20 72 65 6c 61 | 74 69 76 65 20 61 64 64 | ; rela|tive add| |000035e0| 72 65 73 73 20 6f 66 20 | 6c 61 73 74 20 73 2e 66 |ress of |last s.f| |000035f0| 2e 20 6d 65 6d 62 65 72 | 0d 73 66 73 69 7a 65 20 |. member|.sfsize | |00003600| 20 2e 65 71 75 20 2d 73 | 66 6c 61 73 74 09 09 20 | .equ -s|flast.. | |00003610| 20 20 20 20 20 20 20 3b | 20 73 69 7a 65 20 6f 66 | ;| size of| |00003620| 20 73 2e 66 2e 20 66 6f | 72 20 4c 49 4e 4b 20 28 | s.f. fo|r LINK (| |00003630| 6d 75 73 74 20 62 65 20 | 45 56 45 4e 21 29 0d 3b |must be |EVEN!).;| |00003640| 0d 3b 20 20 20 20 20 20 | 20 70 61 72 61 6d 65 74 |.; | paramet| |00003650| 65 72 20 6f 66 66 73 65 | 74 73 20 66 72 6f 6d 20 |er offse|ts from | |00003660| 74 68 65 20 73 74 61 63 | 6b 20 66 72 61 6d 65 20 |the stac|k frame | |00003670| 70 6f 69 6e 74 65 72 2c | 20 41 36 3a 0d 3b 20 20 |pointer,| A6:.; | |00003680| 20 20 20 20 20 6c 61 73 | 74 20 70 61 72 61 6d 65 | las|t parame| |00003690| 74 65 72 20 69 73 20 61 | 62 6f 76 65 20 72 65 74 |ter is a|bove ret| |000036a0| 75 72 6e 20 61 64 64 72 | 65 73 73 20 61 6e 64 20 |urn addr|ess and | |000036b0| 6f 6c 64 20 73 2e 66 2e | 0d 3b 0d 0d 64 52 70 74 |old s.f.|.;..dRpt| |000036c0| 72 20 20 20 2e 65 71 75 | 20 34 2b 34 09 09 20 20 |r .equ| 4+4.. | |000036d0| 20 20 20 20 20 20 3b 20 | 5e 64 65 73 74 69 6e 61 | ; |^destina| |000036e0| 74 69 6f 6e 20 72 65 63 | 74 61 6e 67 6c 65 0d 73 |tion rec|tangle.s| |000036f0| 52 70 74 72 20 20 20 2e | 65 71 75 20 64 52 70 74 |Rptr .|equ dRpt| |00003700| 72 2b 34 09 09 20 20 20 | 20 20 20 20 20 3b 20 5e |r+4.. | ; ^| |00003710| 73 6f 75 72 63 65 20 72 | 65 63 74 61 6e 67 6c 65 |source r|ectangle| |00003720| 0d 64 42 70 74 72 20 20 | 20 2e 65 71 75 20 73 52 |.dBptr | .equ sR| |00003730| 70 74 72 2b 34 09 09 20 | 20 20 20 20 20 20 20 3b |ptr+4.. | ;| |00003740| 20 5e 64 65 73 74 69 6e | 61 74 69 6f 6e 20 62 69 | ^destin|ation bi| |00003750| 74 4d 61 70 0d 73 42 70 | 74 72 20 20 20 2e 65 71 |tMap.sBp|tr .eq| |00003760| 75 20 64 42 70 74 72 2b | 34 09 09 20 20 20 20 20 |u dBptr+|4.. | |00003770| 20 20 20 3b 20 5e 73 6f | 75 72 63 65 20 62 69 74 | ; ^so|urce bit| |00003780| 4d 61 70 0d 0d 70 6c 61 | 73 74 20 20 20 2e 65 71 |Map..pla|st .eq| |00003790| 75 20 73 42 70 74 72 2b | 34 09 09 20 20 20 20 20 |u sBptr+|4.. | |000037a0| 20 20 20 3b 20 61 64 64 | 72 65 73 73 20 6a 75 73 | ; add|ress jus| |000037b0| 74 20 70 61 73 74 20 6c | 61 73 74 20 70 61 72 61 |t past l|ast para| |000037c0| 6d 65 74 65 72 0d 0d 70 | 73 69 7a 65 20 20 20 2e |meter..p|size .| |000037d0| 65 71 75 20 70 6c 61 73 | 74 2d 64 52 70 74 72 09 |equ plas|t-dRptr.| |000037e0| 20 20 20 20 20 20 20 20 | 3b 20 73 69 7a 65 20 6f | |; size o| |000037f0| 66 20 70 61 72 61 6d 65 | 74 65 72 73 2c 20 69 6e |f parame|ters, in| |00003800| 20 62 79 74 65 73 0d 0d | 3b 0d 3b 20 65 6e 74 72 | bytes..|;.; entr| |00003810| 61 6e 63 65 3a 20 73 65 | 74 20 75 70 20 61 20 73 |ance: se|t up a s| |00003820| 74 61 63 6b 20 66 72 61 | 6d 65 2c 20 73 61 76 65 |tack fra|me, save| |00003830| 20 73 6f 6d 65 20 72 65 | 67 69 73 74 65 72 73 2c | some re|gisters,| |00003840| 20 68 69 64 65 20 74 68 | 65 20 63 75 72 73 6f 72 | hide th|e cursor| |00003850| 2e 0d 3b 0d 0d 64 69 73 | 73 42 69 74 73 3a 09 09 |..;..dis|sBits:..| |00003860| 20 20 20 20 20 20 20 20 | 3b 20 6d 61 69 6e 20 65 | |; main e| |00003870| 6e 74 72 79 20 70 6f 69 | 6e 74 0d 0d 20 20 20 20 |ntry poi|nt.. | |00003880| 20 20 20 20 6c 69 6e 6b | 20 41 36 2c 23 2d 73 66 | link| A6,#-sf| |00003890| 73 69 7a 65 09 20 20 20 | 20 20 20 20 20 3b 20 73 |size. | ; s| |000038a0| 65 74 20 75 70 20 61 20 | 73 74 61 63 6b 20 66 72 |et up a |stack fr| |000038b0| 61 6d 65 0d 20 20 20 20 | 20 20 20 20 6d 6f 76 65 |ame. | move| |000038c0| 6d 2e 6c 20 44 33 2d 44 | 37 2f 41 32 2d 41 35 2c |m.l D3-D|7/A2-A5,| |000038d0| 2d 28 53 50 29 20 20 20 | 20 20 20 20 3b 20 73 61 |-(SP) | ; sa| |000038e0| 76 65 20 72 65 67 69 73 | 74 65 72 73 20 63 6f 6d |ve regis|ters com| |000038f0| 70 69 6c 65 72 20 6d 61 | 79 20 6e 65 65 64 0d 20 |piler ma|y need. | |00003900| 20 20 20 20 20 20 20 5f | 68 69 64 65 63 75 72 73 | _|hidecurs| |00003910| 09 09 20 20 20 20 20 20 | 20 20 3b 20 64 6f 6e 27 |.. | ; don'| |00003920| 74 20 6c 65 74 20 74 68 | 65 20 63 75 72 73 6f 72 |t let th|e cursor| |00003930| 20 73 68 6f 77 20 66 6f | 72 20 6e 6f 77 0d 0d 3b | show fo|r now..;| |00003940| 0d 3b 20 63 6f 6e 76 65 | 72 74 20 74 68 65 20 73 |.; conve|rt the s| |00003950| 6f 75 72 63 65 20 61 6e | 64 20 64 65 73 74 69 6e |ource an|d destin| |00003960| 61 74 69 6f 6e 20 62 69 | 74 6d 61 70 73 20 61 6e |ation bi|tmaps an| |00003970| 64 20 72 65 63 74 61 6e | 67 6c 65 73 20 74 6f 20 |d rectan|gles to | |00003980| 61 20 66 6f 72 6d 61 74 | 20 77 65 20 70 72 65 66 |a format| we pref| |00003990| 65 72 2e 0d 3b 20 77 65 | 20 77 6f 6e 27 74 20 6c |er..; we| won't l| |000039a0| 6f 6f 6b 20 61 74 20 74 | 68 65 73 65 20 70 61 72 |ook at t|hese par| |000039b0| 61 6d 65 74 65 72 73 20 | 61 66 74 65 72 20 74 68 |ameters |after th| |000039c0| 69 73 2e 0d 3b 0d 0d 20 | 20 20 20 20 20 20 20 6d |is..;.. | m| |000039d0| 6f 76 65 2e 6c 20 73 42 | 70 74 72 28 41 36 29 2c |ove.l sB|ptr(A6),| |000039e0| 41 30 09 20 20 20 20 20 | 20 20 20 3b 20 70 6f 69 |A0. | ; poi| |000039f0| 6e 74 20 74 6f 20 73 6f | 75 72 63 65 20 62 69 74 |nt to so|urce bit| |00003a00| 4d 61 70 0d 20 20 20 20 | 20 20 20 20 6d 6f 76 65 |Map. | move| |00003a10| 2e 6c 20 73 52 70 74 72 | 28 41 36 29 2c 41 31 09 |.l sRptr|(A6),A1.| |00003a20| 20 20 20 20 20 20 20 20 | 3b 20 61 6e 64 20 73 6f | |; and so| |00003a30| 75 72 63 65 20 72 65 63 | 74 61 6e 67 6c 65 0d 20 |urce rec|tangle. | |00003a40| 20 20 20 20 20 20 20 6c | 65 61 20 73 72 63 4f 75 | l|ea srcOu| |00003a50| 72 73 28 41 36 29 2c 41 | 32 09 20 20 20 20 20 20 |rs(A6),A|2. | |00003a60| 20 20 3b 20 61 6e 64 20 | 6f 75 72 20 73 6f 75 72 | ; and |our sour| |00003a70| 63 65 20 73 74 72 75 63 | 74 75 72 65 0d 20 20 20 |ce struc|ture. | |00003a80| 20 20 20 20 20 62 73 72 | 20 43 4f 4e 56 45 52 54 | bsr| CONVERT| |00003a90| 09 09 20 20 20 20 20 20 | 20 20 3b 20 63 6f 6e 76 |.. | ; conv| |00003aa0| 65 72 74 20 74 6f 20 6f | 75 72 20 66 6f 72 6d 61 |ert to o|ur forma| |00003ab0| 74 0d 0d 20 20 20 20 20 | 20 20 20 6d 6f 76 65 2e |t.. | move.| |00003ac0| 6c 20 64 42 70 74 72 28 | 41 36 29 2c 41 30 09 20 |l dBptr(|A6),A0. | |00003ad0| 20 20 20 20 20 20 20 3b | 20 70 6f 69 6e 74 20 74 | ;| point t| |00003ae0| 6f 20 64 65 73 74 69 6e | 61 74 69 6f 6e 20 62 69 |o destin|ation bi| |00003af0| 74 4d 61 70 0d 20 20 20 | 20 20 20 20 20 6d 6f 76 |tMap. | mov| |00003b00| 65 2e 6c 20 64 52 70 74 | 72 28 41 36 29 2c 41 31 |e.l dRpt|r(A6),A1| |00003b10| 09 20 20 20 20 20 20 20 | 20 3b 20 61 6e 64 20 72 |. | ; and r| |00003b20| 65 63 74 61 6e 67 6c 65 | 0d 20 20 20 20 20 20 20 |ectangle|. | |00003b30| 20 6c 65 61 20 64 73 74 | 4f 75 72 73 28 41 36 29 | lea dst|Ours(A6)| |00003b40| 2c 41 32 09 20 20 20 20 | 20 20 20 20 3b 20 61 6e |,A2. | ; an| |00003b50| 64 20 6f 75 72 20 73 74 | 72 75 63 74 75 72 65 0d |d our st|ructure.| |00003b60| 20 20 20 20 20 20 20 20 | 62 73 72 20 43 4f 4e 56 | |bsr CONV| |00003b70| 45 52 54 09 09 20 20 20 | 20 20 20 20 20 3b 20 63 |ERT.. | ; c| |00003b80| 6f 6e 76 65 72 74 20 74 | 6f 20 6f 75 72 20 66 6f |onvert t|o our fo| |00003b90| 72 6d 61 74 0d 0d 3b 0d | 3b 20 63 68 65 63 6b 20 |rmat..;.|; check | |00003ba0| 74 68 61 74 20 74 68 65 | 20 72 65 63 74 61 6e 67 |that the| rectang| |00003bb0| 6c 65 73 20 6d 61 74 63 | 68 20 69 6e 20 73 69 7a |les matc|h in siz| |00003bc0| 65 2e 0d 3b 0d 20 20 20 | 20 20 20 20 20 6d 6f 76 |e..;. | mov| |00003bd0| 65 2e 77 20 73 72 63 4f | 75 72 73 2b 6f 52 6f 77 |e.w srcO|urs+oRow| |00003be0| 73 28 41 36 29 2c 44 30 | 20 20 20 20 20 3b 20 70 |s(A6),D0| ; p| |00003bf0| 69 63 6b 20 75 70 20 74 | 68 65 20 6e 75 6d 62 65 |ick up t|he numbe| |00003c00| 72 20 6f 66 20 72 6f 77 | 73 0d 20 20 20 20 20 20 |r of row|s. | |00003c10| 20 20 63 6d 70 2e 77 20 | 64 73 74 4f 75 72 73 2b | cmp.w |dstOurs+| |00003c20| 6f 52 6f 77 73 28 41 36 | 29 2c 44 30 20 20 20 20 |oRows(A6|),D0 | |00003c30| 20 20 3b 20 73 61 6d 65 | 20 6e 75 6d 62 65 72 20 | ; same| number | |00003c40| 6f 66 20 72 6f 77 73 3f | 0d 20 20 20 20 20 20 20 |of rows?|. | |00003c50| 20 62 6e 65 20 45 52 52 | 4f 52 09 09 20 20 20 20 | bne ERR|OR.. | |00003c60| 20 20 20 20 3b 20 6e 6f | 70 65 20 2d 2d 20 62 61 | ; no|pe -- ba| |00003c70| 67 20 69 74 0d 0d 20 20 | 20 20 20 20 20 20 6d 6f |g it.. | mo| |00003c80| 76 65 2e 77 20 73 72 63 | 4f 75 72 73 2b 6f 43 6f |ve.w src|Ours+oCo| |00003c90| 6c 73 28 41 36 29 2c 44 | 30 20 20 20 20 20 3b 20 |ls(A6),D|0 ; | |00003ca0| 63 68 65 63 6b 20 74 68 | 65 20 6e 75 6d 62 65 72 |check th|e number| |00003cb0| 20 6f 66 20 63 6f 6c 75 | 6d 6e 73 0d 20 20 20 20 | of colu|mns. | |00003cc0| 20 20 20 20 63 6d 70 2e | 77 20 64 73 74 4f 75 72 | cmp.|w dstOur| |00003cd0| 73 2b 6f 43 6f 6c 73 28 | 41 36 29 2c 44 30 20 20 |s+oCols(|A6),D0 | |00003ce0| 20 20 20 20 3b 20 73 61 | 6d 65 20 6e 75 6d 62 65 | ; sa|me numbe| |00003cf0| 72 20 6f 66 20 63 6f 6c | 75 6d 6e 73 2c 20 74 6f |r of col|umns, to| |00003d00| 6f 3f 0d 20 20 20 20 20 | 20 20 20 62 6e 65 20 45 |o?. | bne E| |00003d10| 52 52 4f 52 09 09 20 20 | 20 20 20 20 20 20 3b 20 |RROR.. | ; | |00003d20| 74 68 61 74 27 73 20 61 | 20 62 6f 7a 6f 20 6e 6f |that's a| bozo no| |00003d30| 2d 6e 6f 0d 0d 3b 0d 3b | 20 66 69 67 75 72 65 20 |-no..;.;| figure | |00003d40| 74 68 65 20 62 69 74 2d | 77 69 64 74 68 20 6e 65 |the bit-|width ne| |00003d50| 65 64 65 64 20 74 6f 20 | 73 70 61 6e 20 74 68 65 |eded to |span the| |00003d60| 20 63 6f 6c 75 6d 6e 73 | 2c 20 61 6e 64 20 74 68 | columns|, and th| |00003d70| 65 20 72 6f 77 73 2e 0d | 3b 0d 0d 20 20 20 20 20 |e rows..|;.. | |00003d80| 20 20 20 6d 6f 76 65 2e | 77 20 73 72 63 4f 75 72 | move.|w srcOur| |00003d90| 73 2b 6f 43 6f 6c 73 28 | 41 36 29 2c 44 30 20 20 |s+oCols(|A6),D0 | |00003da0| 20 20 20 3b 20 67 65 74 | 20 63 6f 75 6e 74 20 6f | ; get| count o| |00003db0| 66 20 63 6f 6c 75 6d 6e | 73 0d 20 20 20 20 20 20 |f column|s. | |00003dc0| 20 20 65 78 74 2e 6c 20 | 44 30 09 09 20 20 20 20 | ext.l |D0.. | |00003dd0| 20 20 20 20 3b 20 6d 61 | 6b 65 20 69 74 20 61 20 | ; ma|ke it a | |00003de0| 6c 6f 6e 67 77 6f 72 64 | 0d 20 20 20 20 20 20 20 |longword|. | |00003df0| 20 62 73 72 20 4c 4f 47 | 32 09 09 20 20 20 20 20 | bsr LOG|2.. | |00003e00| 20 20 20 3b 20 66 69 67 | 75 72 65 20 62 69 74 2d | ; fig|ure bit-| |00003e10| 77 69 64 74 68 0d 20 20 | 20 20 20 20 20 20 6d 6f |width. | mo| |00003e20| 76 65 2e 77 20 44 30 2c | 44 31 09 09 20 20 20 20 |ve.w D0,|D1.. | |00003e30| 20 20 20 20 3b 20 73 65 | 74 20 61 73 69 64 65 20 | ; se|t aside | |00003e40| 74 68 61 74 20 72 65 73 | 75 6c 74 0d 20 20 20 20 |that res|ult. | |00003e50| 20 20 20 20 62 65 71 20 | 53 4d 41 4c 4c 09 09 20 | beq |SMALL.. | |00003e60| 20 20 20 20 20 20 20 3b | 20 74 6f 6f 20 73 6d 61 | ;| too sma| |00003e70| 6c 6c 3f 20 20 77 69 6d | 70 20 6f 75 74 20 61 6e |ll? wim|p out an| |00003e80| 64 20 64 6f 20 69 74 20 | 77 69 74 68 20 63 6f 70 |d do it |with cop| |00003e90| 79 42 69 74 73 0d 0d 20 | 20 20 20 20 20 20 20 6d |yBits.. | m| |00003ea0| 6f 76 65 2e 77 20 73 72 | 63 4f 75 72 73 2b 6f 52 |ove.w sr|cOurs+oR| |00003eb0| 6f 77 73 28 41 36 29 2c | 44 30 20 20 20 20 20 3b |ows(A6),|D0 ;| |00003ec0| 20 67 65 74 20 63 6f 75 | 6e 74 20 6f 66 20 72 6f | get cou|nt of ro| |00003ed0| 77 73 0d 20 20 20 20 20 | 20 20 20 65 78 74 2e 6c |ws. | ext.l| |00003ee0| 20 44 30 09 09 20 20 20 | 20 20 20 20 20 3b 20 6d | D0.. | ; m| |00003ef0| 61 6b 65 20 69 74 20 61 | 20 6c 6f 6e 67 77 6f 72 |ake it a| longwor| |00003f00| 64 0d 20 20 20 20 20 20 | 20 20 62 73 72 20 4c 4f |d. | bsr LO| |00003f10| 47 32 09 09 20 20 20 20 | 20 20 20 20 3b 20 61 67 |G2.. | ; ag| |00003f20| 61 69 6e 2c 20 66 69 6e | 64 20 74 68 65 20 62 69 |ain, fin|d the bi| |00003f30| 74 2d 77 69 64 74 68 0d | 20 20 20 20 20 20 20 20 |t-width.| | |00003f40| 74 73 74 2e 77 20 44 30 | 09 09 20 20 20 20 20 20 |tst.w D0|.. | |00003f50| 20 20 3b 20 69 73 20 74 | 68 65 20 72 65 73 75 6c | ; is t|he resul| |00003f60| 74 20 7a 65 72 6f 3f 0d | 20 20 20 20 20 20 20 20 |t zero?.| | |00003f70| 62 65 71 20 53 4d 41 4c | 4c 09 09 20 20 20 20 20 |beq SMAL|L.. | |00003f80| 20 20 20 3b 20 69 66 20 | 73 6f 2c 20 6f 75 72 20 | ; if |so, our | |00003f90| 61 6c 67 6f 72 69 74 68 | 6d 20 77 69 6c 6c 20 73 |algorith|m will s| |00003fa0| 63 72 65 77 20 75 70 0d | 0d 3b 0d 3b 20 73 65 74 |crew up.|.;.; set| |00003fb0| 20 75 70 20 76 61 72 69 | 6f 75 73 20 63 6f 6e 73 | up vari|ous cons| |00003fc0| 74 61 6e 74 73 20 77 65 | 27 6c 6c 20 6e 65 65 64 |tants we|'ll need| |00003fd0| 20 69 6e 20 74 68 65 20 | 69 6e 20 74 68 65 20 69 | in the |in the i| |00003fe0| 6e 6e 65 72 6d 6f 73 74 | 20 6c 6f 6f 70 0d 3b 0d |nnermost| loop.;.| |00003ff0| 0d 20 20 20 20 20 20 20 | 20 6d 6f 76 65 2e 6c 20 |. | move.l | |00004000| 23 31 2c 44 35 09 09 20 | 20 20 20 20 20 20 20 3b |#1,D5.. | ;| |00004010| 20 73 65 74 20 75 70 2e | 2e 2e 0d 20 20 20 20 20 | set up.|... | |00004020| 20 20 20 6c 73 6c 2e 6c | 20 44 31 2c 44 35 09 09 | lsl.l| D1,D5..| |00004030| 20 20 20 20 20 20 20 20 | 3b 20 2e 2e 2e 74 68 65 | |; ...the| |00004040| 20 62 69 74 20 6d 61 73 | 6b 20 77 68 69 63 68 20 | bit mas|k which | |00004050| 69 73 2e 2e 2e 0d 20 20 | 20 20 20 20 20 20 73 75 |is.... | su| |00004060| 62 2e 6c 20 23 31 2c 44 | 35 09 09 20 20 20 20 20 |b.l #1,D|5.. | |00004070| 20 20 20 3b 20 2e 2e 2e | 62 69 74 2d 77 69 64 74 | ; ...|bit-widt| |00004080| 68 20 28 63 6f 6c 73 29 | 20 31 27 73 0d 0d 20 20 |h (cols)| 1's.. | |00004090| 20 20 20 20 20 20 61 64 | 64 2e 77 20 44 31 2c 44 | ad|d.w D1,D| |000040a0| 30 09 09 20 20 20 20 20 | 20 20 20 3b 20 66 69 6e |0.. | ; fin| |000040b0| 64 20 74 6f 74 61 6c 20 | 62 69 74 2d 77 69 64 74 |d total |bit-widt| |000040c0| 68 20 28 72 6f 77 73 20 | 70 6c 75 73 20 63 6f 6c |h (rows |plus col| |000040d0| 75 6d 6e 73 29 0d 20 20 | 20 20 20 20 20 20 6c 65 |umns). | le| |000040e0| 61 20 54 41 42 4c 45 2c | 41 30 09 09 20 20 20 20 |a TABLE,|A0.. | |000040f0| 20 20 20 20 3b 20 70 6f | 69 6e 74 20 74 6f 20 74 | ; po|int to t| |00004100| 68 65 20 74 61 62 6c 65 | 20 6f 66 20 58 4f 52 20 |he table| of XOR | |00004110| 6d 61 73 6b 73 0d 20 20 | 20 20 20 20 20 20 6d 6f |masks. | mo| |00004120| 76 65 71 20 23 30 2c 44 | 33 09 09 20 20 20 20 20 |veq #0,D|3.. | |00004130| 20 20 20 3b 20 63 6c 65 | 61 72 20 6f 75 74 20 44 | ; cle|ar out D| |00004140| 33 20 62 65 66 6f 72 65 | 20 77 65 20 66 69 6c 6c |3 before| we fill| |00004150| 20 74 68 65 20 6c 6f 77 | 20 62 79 74 65 0d 20 20 | the low| byte. | |00004160| 20 20 20 20 20 20 6d 6f | 76 65 2e 62 20 30 28 41 | mo|ve.b 0(A| |00004170| 30 2c 44 30 29 2c 44 33 | 09 20 20 20 20 20 20 20 |0,D0),D3|. | |00004180| 20 3b 20 67 72 61 62 20 | 74 68 65 20 63 6f 72 72 | ; grab |the corr| |00004190| 65 63 74 20 58 4f 52 20 | 6d 61 73 6b 20 69 6e 20 |ect XOR |mask in | |000041a0| 44 33 0d 0d 3b 0d 3b 20 | 74 68 65 20 74 61 62 6c |D3..;.; |the tabl| |000041b0| 65 20 69 73 20 73 61 76 | 65 64 20 63 6f 6d 70 61 |e is sav|ed compa| |000041c0| 63 74 6c 79 2c 20 73 69 | 6e 63 65 20 6e 6f 6e 65 |ctly, si|nce none| |000041d0| 20 6f 66 20 74 68 65 20 | 6d 61 73 6b 73 20 61 72 | of the |masks ar| |000041e0| 65 20 77 69 64 65 72 20 | 74 68 61 6e 20 61 20 62 |e wider |than a b| |000041f0| 79 74 65 2e 20 20 77 65 | 20 68 61 76 65 20 74 6f |yte. we| have to| |00004200| 20 75 6e 70 61 63 6b 20 | 69 74 20 73 6f 0d 3b 20 | unpack |it so.; | |00004210| 74 68 65 20 68 69 67 68 | 2d 6f 72 64 65 72 20 62 |the high|-order b| |00004220| 69 74 20 6f 66 20 74 68 | 65 20 44 30 2d 62 69 74 |it of th|e D0-bit| |00004230| 2d 77 69 64 65 20 66 69 | 65 6c 64 20 69 73 20 6f |-wide fi|eld is o| |00004240| 6e 3a 0d 3b 0d 0d 55 4e | 50 41 43 4b 3a 20 61 64 |n:.;..UN|PACK: ad| |00004250| 64 2e 6c 20 44 33 2c 44 | 33 09 09 20 20 20 20 20 |d.l D3,D|3.. | |00004260| 20 20 20 3b 20 73 68 69 | 66 74 20 6c 65 66 74 20 | ; shi|ft left | |00004270| 62 79 20 6f 6e 65 0d 20 | 20 20 20 20 20 20 20 62 |by one. | b| |00004280| 70 6c 2e 73 20 55 4e 50 | 41 43 4b 09 09 20 20 20 |pl.s UNP|ACK.. | |00004290| 20 20 20 20 20 3b 20 6b | 65 65 70 20 6d 6f 76 69 | ; k|eep movi| |000042a0| 6e 67 20 75 6e 74 69 6c | 20 74 68 65 20 74 6f 70 |ng until| the top| |000042b0| 20 62 69 74 20 74 68 61 | 74 27 73 20 6f 6e 20 69 | bit tha|t's on i| |000042c0| 73 20 61 6c 69 67 6e 65 | 64 20 61 74 20 74 68 65 |s aligne|d at the| |000042d0| 20 74 6f 70 20 65 6e 64 | 0d 0d 20 20 20 20 20 20 | top end|.. | |000042e0| 20 20 72 6f 6c 2e 6c 20 | 44 30 2c 44 33 09 09 20 | rol.l |D0,D3.. | |000042f0| 20 20 20 20 20 20 20 3b | 20 6e 6f 77 20 73 77 69 | ;| now swi| |00004300| 6e 67 20 74 68 65 20 74 | 6f 70 20 44 30 20 62 69 |ng the t|op D0 bi| |00004310| 74 73 20 61 72 6f 75 6e | 64 20 74 6f 20 62 65 20 |ts aroun|d to be | |00004320| 74 68 65 20 62 6f 74 74 | 6f 6d 20 44 30 20 62 69 |the bott|om D0 bi| |00004330| 74 73 2c 20 74 68 65 20 | 6d 61 73 6b 0d 20 20 20 |ts, the |mask. | |00004340| 20 20 20 20 20 6d 6f 76 | 65 2e 6c 20 44 33 2c 44 | mov|e.l D3,D| |00004350| 30 09 09 20 20 20 20 20 | 20 20 20 3b 20 31 73 74 |0.. | ; 1st| |00004360| 20 73 65 71 75 65 6e 63 | 65 20 65 6c 65 6d 65 6e | sequenc|e elemen| |00004370| 74 20 69 73 20 74 68 65 | 20 6d 61 73 6b 20 69 74 |t is the| mask it| |00004380| 73 65 6c 66 0d 0d 3b 0d | 3b 20 64 6f 20 61 6c 6c |self..;.|; do all| |00004390| 20 6b 69 6e 64 73 20 6f | 66 20 70 72 65 70 61 72 | kinds o|f prepar| |000043a0| 61 74 69 6f 6e 3a 0d 3b | 0d 0d 20 20 20 20 20 20 |ation:.;|.. | |000043b0| 20 20 6d 6f 76 65 2e 6c | 20 73 72 63 4f 75 72 73 | move.l| srcOurs| |000043c0| 2b 6f 42 61 73 65 28 41 | 36 29 2c 44 32 20 20 20 |+oBase(A|6),D2 | |000043d0| 20 20 3b 20 73 65 74 20 | 75 70 20 62 61 73 65 20 | ; set |up base | |000043e0| 70 6f 69 6e 74 65 72 20 | 66 6f 72 20 6f 75 72 20 |pointer |for our | |000043f0| 73 6f 75 72 63 65 20 62 | 69 74 73 0d 20 20 20 20 |source b|its. | |00004400| 20 20 20 20 6c 73 6c 2e | 6c 20 23 33 2c 44 32 09 | lsl.|l #3,D2.| |00004410| 09 20 20 20 20 20 20 20 | 20 3b 20 6d 61 6b 65 20 |. | ; make | |00004420| 69 74 20 69 6e 74 6f 20 | 61 20 62 69 74 20 61 64 |it into |a bit ad| |00004430| 64 72 65 73 73 0d 20 20 | 20 20 20 20 20 20 6d 6f |dress. | mo| |00004440| 76 65 2e 6c 20 44 32 2c | 41 30 09 09 20 20 20 20 |ve.l D2,|A0.. | |00004450| 20 20 20 20 3b 20 70 75 | 74 20 69 74 20 77 68 65 | ; pu|t it whe| |00004460| 72 65 20 74 68 65 20 66 | 61 73 74 20 6c 6f 6f 70 |re the f|ast loop| |00004470| 20 77 69 6c 6c 20 75 73 | 65 20 69 74 0d 20 20 20 | will us|e it. | |00004480| 20 20 20 20 20 6d 6f 76 | 65 2e 77 20 73 72 63 4f | mov|e.w srcO| |00004490| 75 72 73 2b 6f 4c 62 69 | 74 73 28 41 36 29 2c 44 |urs+oLbi|ts(A6),D| |000044a0| 32 20 20 20 20 3b 20 6e | 6f 77 20 70 69 63 6b 20 |2 ; n|ow pick | |000044b0| 75 70 20 73 6f 75 72 63 | 65 20 6c 65 66 74 20 6d |up sourc|e left m| |000044c0| 61 72 67 69 6e 0d 20 20 | 20 20 20 20 20 20 65 78 |argin. | ex| |000044d0| 74 2e 6c 20 44 32 09 09 | 20 20 20 20 20 20 20 20 |t.l D2..| | |000044e0| 3b 20 6d 61 6b 65 20 69 | 74 20 61 20 6c 6f 6e 67 |; make i|t a long| |000044f0| 77 6f 72 64 0d 20 20 20 | 20 20 20 20 20 61 64 64 |word. | add| |00004500| 2e 6c 20 44 32 2c 41 30 | 09 09 20 20 20 20 20 20 |.l D2,A0|.. | |00004510| 20 20 3b 20 61 6e 64 20 | 6d 61 6b 65 20 41 30 20 | ; and |make A0 | |00004520| 75 73 65 66 75 6c 20 66 | 6f 72 20 6f 64 64 20 72 |useful f|or odd r| |00004530| 6f 75 74 69 6e 65 20 62 | 65 6c 6f 77 0d 0d 20 20 |outine b|elow.. | |00004540| 20 20 20 20 20 20 6d 6f | 76 65 2e 6c 20 64 73 74 | mo|ve.l dst| |00004550| 4f 75 72 73 2b 6f 42 61 | 73 65 28 41 36 29 2c 44 |Ours+oBa|se(A6),D| |00004560| 32 20 20 20 20 20 3b 20 | 73 65 74 20 75 70 20 62 |2 ; |set up b| |00004570| 61 73 65 20 70 6f 69 6e | 74 65 72 20 66 6f 72 20 |ase poin|ter for | |00004580| 74 61 72 67 65 74 0d 20 | 20 20 20 20 20 20 20 6c |target. | l| |00004590| 73 6c 2e 6c 20 23 33 2c | 44 32 09 09 20 20 20 20 |sl.l #3,|D2.. | |000045a0| 20 20 20 20 3b 20 61 67 | 61 69 6e 2c 20 62 69 74 | ; ag|ain, bit| |000045b0| 20 61 64 64 72 65 73 73 | 69 6e 67 20 77 6f 72 6b | address|ing work| |000045c0| 73 20 6f 75 74 20 66 61 | 73 74 65 72 0d 20 20 20 |s out fa|ster. | |000045d0| 20 20 20 20 20 6d 6f 76 | 65 2e 6c 20 44 32 2c 41 | mov|e.l D2,A| |000045e0| 31 09 09 20 20 20 20 20 | 20 20 20 3b 20 73 74 75 |1.. | ; stu| |000045f0| 66 66 20 69 74 20 77 68 | 65 72 65 20 77 65 20 77 |ff it wh|ere we w| |00004600| 61 6e 74 20 69 74 20 66 | 6f 72 20 74 68 65 20 6c |ant it f|or the l| |00004610| 6f 6f 70 0d 20 20 20 20 | 20 20 20 20 6d 6f 76 65 |oop. | move| |00004620| 2e 77 20 64 73 74 4f 75 | 72 73 2b 6f 4c 62 69 74 |.w dstOu|rs+oLbit| |00004630| 73 28 41 36 29 2c 44 32 | 20 20 20 20 3b 20 6e 6f |s(A6),D2| ; no| |00004640| 77 20 70 69 63 6b 20 75 | 70 20 64 65 73 74 69 6e |w pick u|p destin| |00004650| 61 74 69 6f 6e 20 6c 65 | 66 74 20 6d 61 72 67 69 |ation le|ft margi| |00004660| 6e 0d 20 20 20 20 20 20 | 20 20 65 78 74 2e 6c 20 |n. | ext.l | |00004670| 44 32 09 09 20 20 20 20 | 20 20 20 20 3b 20 6d 61 |D2.. | ; ma| |00004680| 6b 65 20 69 74 20 61 20 | 6c 6f 6e 67 77 6f 72 64 |ke it a |longword| |00004690| 0d 20 20 20 20 20 20 20 | 20 61 64 64 2e 6c 20 44 |. | add.l D| |000046a0| 32 2c 41 31 09 09 20 20 | 20 20 20 20 20 20 3b 20 |2,A1.. | ; | |000046b0| 61 6e 64 20 6d 61 6b 65 | 20 41 31 20 75 73 65 66 |and make| A1 usef| |000046c0| 75 6c 2c 20 74 6f 6f 0d | 0d 20 20 20 20 20 20 20 |ul, too.|. | |000046d0| 20 6d 6f 76 65 2e 77 20 | 73 72 63 4f 75 72 73 2b | move.w |srcOurs+| |000046e0| 6f 43 6f 6c 73 28 41 36 | 29 2c 41 32 20 20 20 20 |oCols(A6|),A2 | |000046f0| 20 3b 20 70 69 63 6b 20 | 75 70 20 74 68 65 20 6f | ; pick |up the o| |00004700| 66 74 65 6e 2d 75 73 65 | 64 20 63 6f 75 6e 74 20 |ften-use|d count | |00004710| 6f 66 20 63 6f 6c 75 6d | 6e 73 0d 20 20 20 20 20 |of colum|ns. | |00004720| 20 20 20 6d 6f 76 65 2e | 77 20 73 72 63 4f 75 72 | move.|w srcOur| |00004730| 73 2b 6f 52 6f 77 73 28 | 41 36 29 2c 44 32 20 20 |s+oRows(|A6),D2 | |00004740| 20 20 20 3b 20 61 6e 64 | 20 6f 66 20 72 6f 77 73 | ; and| of rows| |00004750| 0d 20 20 20 20 20 20 20 | 20 61 64 64 2e 77 20 23 |. | add.w #| |00004760| 31 2c 44 32 09 09 20 20 | 20 20 20 20 20 20 3b 20 |1,D2.. | ; | |00004770| 6d 61 6b 65 20 72 6f 77 | 20 63 6f 75 6e 74 20 6f |make row| count o| |00004780| 6e 65 2d 74 6f 6f 2d 68 | 69 67 68 20 66 6f 72 20 |ne-too-h|igh for | |00004790| 63 6f 6d 70 61 72 65 73 | 0d 20 20 20 20 20 20 20 |compares|. | |000047a0| 20 65 78 74 2e 6c 20 44 | 32 09 09 20 20 20 20 20 | ext.l D|2.. | |000047b0| 20 20 20 3b 20 61 6e 64 | 20 6d 61 6b 65 20 69 74 | ; and| make it| |000047c0| 20 61 20 6c 6f 6e 67 77 | 6f 72 64 0d 20 20 20 20 | a longw|ord. | |000047d0| 20 20 20 20 6c 73 6c 2e | 6c 20 44 31 2c 44 32 09 | lsl.|l D1,D2.| |000047e0| 09 20 20 20 20 20 20 20 | 20 3b 20 73 6c 69 64 65 |. | ; slide| |000047f0| 20 69 74 20 74 6f 20 6c | 69 6e 65 20 75 70 20 77 | it to l|ine up w| |00004800| 2f 72 6f 77 73 20 70 61 | 72 74 20 6f 66 20 44 30 |/rows pa|rt of D0| |00004810| 0d 20 20 20 20 20 20 20 | 20 6d 6f 76 65 2e 6c 20 |. | move.l | |00004820| 44 32 2c 41 34 09 09 20 | 20 20 20 20 20 20 20 3b |D2,A4.. | ;| |00004830| 20 61 6e 64 20 73 61 76 | 65 20 74 68 61 74 20 73 | and sav|e that s| |00004840| 6f 6d 65 77 68 65 72 65 | 20 75 73 65 66 75 6c 0d |omewhere| useful.| |00004850| 0d 20 20 20 20 20 20 20 | 20 6d 6f 76 65 2e 77 20 |. | move.w | |00004860| 44 31 2c 44 32 09 09 20 | 20 20 20 20 20 20 20 3b |D1,D2.. | ;| |00004870| 20 70 75 74 20 6c 6f 67 | 32 28 63 6f 6c 75 6d 6e | put log|2(column| |00004880| 73 29 20 69 6e 20 61 20 | 73 61 66 65 20 70 6c 61 |s) in a |safe pla| |00004890| 63 65 20 28 73 69 67 68 | 29 0d 0d 3b 0d 3b 20 74 |ce (sigh|)..;.; t| |000048a0| 72 79 20 74 6f 20 72 65 | 64 75 63 65 20 74 68 65 |ry to re|duce the| |000048b0| 20 61 6d 6f 75 6e 74 20 | 77 65 20 73 68 69 66 74 | amount |we shift| |000048c0| 20 64 6f 77 6e 20 44 32 | 2e 20 20 74 68 69 73 20 | down D2|. this | |000048d0| 69 6e 76 6f 6c 76 65 73 | 3a 0d 3b 20 20 20 20 68 |involves|:.; h| |000048e0| 61 6c 76 69 6e 67 20 74 | 68 65 20 73 74 72 69 64 |alving t|he strid| |000048f0| 65 73 20 61 73 20 6c 6f | 6e 67 20 61 73 20 65 61 |es as lo|ng as ea| |00004900| 63 68 20 69 73 20 65 76 | 65 6e 2c 20 64 65 63 72 |ch is ev|en, decr| |00004910| 65 6d 65 6e 74 69 6e 67 | 20 44 32 20 61 73 20 77 |ementing| D2 as w| |00004920| 65 20 67 6f 0d 3b 20 20 | 20 20 6d 61 73 6b 69 6e |e go.; | maskin| |00004930| 67 20 74 68 65 20 62 6f | 74 74 6f 6d 20 62 69 74 |g the bo|ttom bit| |00004940| 73 20 6f 66 66 20 44 34 | 20 77 68 65 6e 20 77 65 |s off D4| when we| |00004950| 20 65 78 74 72 61 63 74 | 20 74 68 65 20 72 6f 77 | extract| the row| |00004960| 20 63 6f 75 6e 74 20 69 | 6e 20 74 68 65 20 6c 6f | count i|n the lo| |00004970| 6f 70 0d 3b 0d 3b 20 61 | 6c 61 73 2c 20 77 65 20 |op.;.; a|las, we | |00004980| 63 61 6e 27 74 20 61 6c | 77 61 79 73 20 73 68 69 |can't al|ways shi| |00004990| 66 74 20 61 73 20 6c 69 | 74 74 6c 65 20 61 73 20 |ft as li|ttle as | |000049a0| 77 65 20 77 61 6e 74 2e | 20 20 66 6f 72 20 69 6e |we want.| for in| |000049b0| 73 74 61 6e 63 65 2c 20 | 69 66 20 77 65 20 64 6f |stance, |if we do| |000049c0| 6e 27 74 0d 3b 20 73 68 | 69 66 74 20 64 6f 77 6e |n't.; sh|ift down| |000049d0| 20 66 61 72 20 65 6e 6f | 75 67 68 2c 20 74 68 65 | far eno|ugh, the| |000049e0| 20 72 6f 77 20 63 6f 75 | 6e 74 20 77 69 6c 6c 20 | row cou|nt will | |000049f0| 62 65 20 73 6f 20 68 69 | 67 68 20 61 73 20 74 6f |be so hi|gh as to| |00004a00| 20 65 78 63 65 65 64 20 | 61 20 68 61 6c 66 77 6f | exceed |a halfwo| |00004a10| 72 64 2c 0d 3b 20 61 6e | 64 20 74 68 65 20 64 72 |rd,.; an|d the dr| |00004a20| 65 61 64 20 6d 75 6c 75 | 20 69 6e 73 74 72 75 63 |ead mulu| instruc| |00004a30| 74 69 6f 6e 20 77 6f 6e | 27 74 20 77 6f 72 6b 20 |tion won|'t work | |00004a40| 28 69 74 20 65 61 74 73 | 20 6f 6e 6c 79 20 77 6f |(it eats| only wo| |00004a50| 72 64 20 6f 70 65 72 61 | 6e 64 73 29 2e 20 20 73 |rd opera|nds). s| |00004a60| 6f 2c 0d 3b 20 77 65 20 | 68 61 76 65 20 74 6f 20 |o,.; we |have to | |00004a70| 68 61 76 65 20 61 6e 20 | 65 78 74 72 61 20 63 68 |have an |extra ch| |00004a80| 65 63 6b 20 74 6f 20 74 | 61 6b 65 20 75 73 20 6f |eck to t|ake us o| |00004a90| 75 74 20 6f 66 20 74 68 | 65 20 6c 6f 6f 70 20 65 |ut of th|e loop e| |00004aa0| 61 72 6c 79 2e 0d 3b 0d | 0d 20 20 20 20 20 20 20 |arly..;.|. | |00004ab0| 20 6d 6f 76 65 2e 77 20 | 73 72 63 4f 75 72 73 2b | move.w |srcOurs+| |00004ac0| 6f 53 74 72 69 64 65 28 | 41 36 29 2c 44 34 20 20 |oStride(|A6),D4 | |00004ad0| 20 3b 20 70 69 63 6b 20 | 75 70 20 73 6f 75 72 63 | ; pick |up sourc| |00004ae0| 65 20 73 74 72 69 64 65 | 0d 20 20 20 20 20 20 20 |e stride|. | |00004af0| 20 6d 6f 76 65 2e 77 20 | 64 73 74 4f 75 72 73 2b | move.w |dstOurs+| |00004b00| 6f 53 74 72 69 64 65 28 | 41 36 29 2c 44 37 20 20 |oStride(|A6),D7 | |00004b10| 20 3b 20 61 6e 64 20 74 | 61 72 67 65 74 20 73 74 | ; and t|arget st| |00004b20| 72 69 64 65 0d 20 20 20 | 20 20 20 20 20 6d 6f 76 |ride. | mov| |00004b30| 65 2e 77 20 73 72 63 4f | 75 72 73 2b 6f 52 6f 77 |e.w srcO|urs+oRow| |00004b40| 73 28 41 36 29 2c 44 31 | 20 20 20 20 20 3b 20 70 |s(A6),D1| ; p| |00004b50| 69 63 6b 20 75 70 20 72 | 6f 77 20 63 6f 75 6e 74 |ick up r|ow count| |00004b60| 20 66 6f 72 20 6b 6c 75 | 64 67 65 79 20 63 68 65 | for klu|dgey che| |00004b70| 63 6b 0d 0d 20 20 20 20 | 20 20 20 20 74 73 74 2e |ck.. | tst.| |00004b80| 77 20 44 32 09 09 20 20 | 20 20 20 20 20 20 3b 20 |w D2.. | ; | |00004b90| 68 6f 77 27 73 20 74 68 | 65 20 62 69 74 63 6f 75 |how's th|e bitcou| |00004ba0| 6e 74 3f 0d 20 20 20 20 | 20 20 20 20 62 65 71 2e |nt?. | beq.| |00004bb0| 73 20 48 41 4c 46 44 4f | 4e 45 09 09 20 20 20 20 |s HALFDO|NE.. | |00004bc0| 20 20 20 20 3b 20 73 6b | 69 70 20 6f 75 74 20 69 | ; sk|ip out i| |00004bd0| 66 20 61 6c 72 65 61 64 | 79 20 64 6f 77 6e 20 74 |f alread|y down t| |00004be0| 6f 20 7a 65 72 6f 0d 0d | 48 41 4c 46 4c 4f 4f 50 |o zero..|HALFLOOP| |00004bf0| 3a 0d 20 20 20 20 20 20 | 20 20 62 74 73 74 20 23 |:. | btst #| |00004c00| 30 2c 44 34 09 09 20 20 | 20 20 20 20 20 20 3b 20 |0,D4.. | ; | |00004c10| 69 73 20 74 68 69 73 20 | 73 74 72 69 64 65 20 65 |is this |stride e| |00004c20| 76 65 6e 3f 0d 20 20 20 | 20 20 20 20 20 62 6e 65 |ven?. | bne| |00004c30| 2e 73 20 48 41 4c 46 44 | 4f 4e 45 09 09 20 20 20 |.s HALFD|ONE.. | |00004c40| 20 20 20 20 20 3b 20 6e | 6f 70 65 20 2d 2d 20 6f | ; n|ope -- o| |00004c50| 75 72 20 77 6f 72 6b 20 | 68 65 72 65 20 69 73 20 |ur work |here is | |00004c60| 64 6f 6e 65 0d 20 20 20 | 20 20 20 20 20 62 74 73 |done. | bts| |00004c70| 74 20 23 30 2c 44 37 09 | 09 20 20 20 20 20 20 20 |t #0,D7.|. | |00004c80| 20 3b 20 68 6f 77 20 61 | 62 6f 75 74 20 74 68 69 | ; how a|bout thi| |00004c90| 73 20 6f 6e 65 3f 0d 20 | 20 20 20 20 20 20 20 62 |s one?. | b| |00004ca0| 6e 65 2e 73 20 48 41 4c | 46 44 4f 4e 45 09 09 20 |ne.s HAL|FDONE.. | |00004cb0| 20 20 20 20 20 20 20 3b | 20 68 61 76 65 20 74 6f | ;| have to| |00004cc0| 20 68 61 76 65 20 62 6f | 74 68 20 65 76 65 6e 0d | have bo|th even.| |00004cd0| 0d 20 20 20 20 20 20 20 | 20 6c 73 6c 2e 77 20 23 |. | lsl.w #| |00004ce0| 31 2c 44 31 09 09 20 20 | 20 20 20 20 20 20 3b 20 |1,D1.. | ; | |00004cf0| 63 61 6e 20 77 65 20 6b | 65 65 70 20 6d 61 78 20 |can we k|eep max | |00004d00| 72 6f 77 20 6e 75 6d 62 | 65 72 20 69 6e 20 61 20 |row numb|er in a | |00004d10| 68 61 6c 66 77 6f 72 64 | 3f 0d 20 20 20 20 20 20 |halfword|?. | |00004d20| 20 20 62 63 73 2e 73 20 | 48 41 4c 46 44 4f 4e 45 | bcs.s |HALFDONE| |00004d30| 09 09 20 20 20 20 20 20 | 20 20 3b 20 6e 6f 70 65 |.. | ; nope| |00004d40| 20 2d 2d 20 44 32 20 6d | 75 73 74 6e 27 74 20 67 | -- D2 m|ustn't g| |00004d50| 65 74 20 61 6e 79 20 73 | 6d 61 6c 6c 65 72 21 0d |et any s|maller!.| |00004d60| 0d 20 20 20 20 20 20 20 | 20 6c 73 72 2e 77 20 23 |. | lsr.w #| |00004d70| 31 2c 44 34 09 09 20 20 | 20 20 20 20 20 20 3b 20 |1,D4.. | ; | |00004d80| 68 61 6c 76 65 20 65 61 | 63 68 20 73 74 72 69 64 |halve ea|ch strid| |00004d90| 65 2e 2e 2e 0d 20 20 20 | 20 20 20 20 20 6c 73 72 |e.... | lsr| |00004da0| 2e 77 20 23 31 2c 44 37 | 09 09 20 20 20 20 20 20 |.w #1,D7|.. | |00004db0| 20 20 3b 20 2e 2e 2e 6c | 69 6b 65 20 74 68 69 73 | ; ...l|ike this| |00004dc0| 0d 20 20 20 20 20 20 20 | 20 73 75 62 2e 77 20 23 |. | sub.w #| |00004dd0| 31 2c 44 32 09 09 20 20 | 20 20 20 20 20 20 3b 20 |1,D2.. | ; | |00004de0| 61 6e 64 20 72 65 6d 65 | 6d 62 65 72 20 6e 6f 74 |and reme|mber not| |00004df0| 20 74 6f 20 73 68 69 66 | 74 20 64 6f 77 6e 20 61 | to shif|t down a| |00004e00| 73 20 66 61 72 0d 20 20 | 20 20 20 20 20 20 62 6e |s far. | bn| |00004e10| 65 2e 73 20 48 41 4c 46 | 4c 4f 4f 50 09 09 20 20 |e.s HALF|LOOP.. | |00004e20| 20 20 20 20 20 20 3b 20 | 6c 6f 6f 70 20 75 6e 6c | ; |loop unl| |00004e30| 65 73 73 20 77 65 27 72 | 65 20 64 6f 77 6e 20 74 |ess we'r|e down t| |00004e40| 6f 20 6e 6f 20 73 68 69 | 66 74 20 61 74 20 61 6c |o no shi|ft at al| |00004e50| 6c 0d 0d 48 41 4c 46 44 | 4f 4e 45 3a 09 09 09 20 |l..HALFD|ONE:... | |00004e60| 20 20 20 20 20 20 20 3b | 20 6e 6f 20 74 61 63 6b | ;| no tack| |00004e70| 79 20 70 6c 61 74 69 74 | 75 64 65 73 2c 20 70 6c |y platit|udes, pl| |00004e80| 65 61 73 65 0d 20 20 20 | 20 20 20 20 20 6d 6f 76 |ease. | mov| |00004e90| 65 2e 77 20 44 34 2c 73 | 72 63 4f 75 72 73 2b 6f |e.w D4,s|rcOurs+o| |00004ea0| 53 74 72 69 64 65 28 41 | 36 29 20 20 20 3b 20 70 |Stride(A|6) ; p| |00004eb0| 75 74 20 62 61 63 6b 20 | 73 6f 75 72 63 65 20 73 |ut back |source s| |00004ec0| 74 72 69 64 65 0d 20 20 | 20 20 20 20 20 20 6d 6f |tride. | mo| |00004ed0| 76 65 2e 77 20 44 37 2c | 64 73 74 4f 75 72 73 2b |ve.w D7,|dstOurs+| |00004ee0| 6f 53 74 72 69 64 65 28 | 41 36 29 20 20 20 3b 20 |oStride(|A6) ; | |00004ef0| 61 6e 64 20 74 61 72 67 | 65 74 20 73 74 72 69 64 |and targ|et strid| |00004f00| 65 0d 0d 3b 0d 3b 20 6d | 61 6b 65 20 73 6f 6d 65 |e..;.; m|ake some| |00004f10| 20 73 74 75 66 66 20 66 | 61 73 74 65 72 20 74 6f | stuff f|aster to| |00004f20| 20 61 63 63 65 73 73 20 | 2d 2d 20 75 73 65 20 74 | access |-- use t| |00004f30| 68 65 20 66 61 63 74 20 | 74 68 61 74 20 28 41 6e |he fact |that (An| |00004f40| 29 20 69 73 20 66 61 73 | 74 65 72 20 74 6f 20 61 |) is fas|ter to a| |00004f50| 63 63 65 73 73 0d 3b 20 | 74 68 61 6e 20 64 28 41 |ccess.; |than d(A| |00004f60| 6e 29 2e 20 20 74 68 69 | 73 20 6d 65 61 6e 73 20 |n). thi|s means | |00004f70| 77 65 27 6c 6c 20 6d 69 | 73 75 73 65 20 6f 75 72 |we'll mi|suse our| |00004f80| 20 66 72 61 6d 65 20 70 | 6f 69 6e 74 65 72 2c 20 | frame p|ointer, | |00004f90| 62 75 74 20 64 6f 6e 27 | 74 20 77 6f 72 72 79 20 |but don'|t worry | |00004fa0| 2d 2d 20 77 65 27 6c 6c | 0d 3b 20 72 65 73 74 6f |-- we'll|.; resto| |00004fb0| 72 65 20 69 74 20 62 65 | 66 6f 72 65 20 77 65 20 |re it be|fore we | |00004fc0| 75 73 65 20 69 74 20 61 | 67 61 69 6e 2e 0d 3b 0d |use it a|gain..;.| |00004fd0| 0d 20 20 20 20 20 20 20 | 20 6d 6f 76 65 2e 77 20 |. | move.w | |00004fe0| 73 72 63 4f 75 72 73 2b | 6f 53 74 72 69 64 65 28 |srcOurs+|oStride(| |00004ff0| 41 36 29 2c 41 35 20 20 | 20 3b 20 6d 61 6b 65 20 |A6),A5 | ; make | |00005000| 73 6f 75 72 63 65 20 73 | 74 72 69 64 65 20 66 61 |source s|tride fa| |00005010| 73 74 65 72 20 74 6f 20 | 61 63 63 65 73 73 2c 20 |ster to |access, | |00005020| 74 6f 6f 0d 20 20 20 20 | 20 20 20 20 6d 6f 76 65 |too. | move| |00005030| 2e 6c 20 41 36 2c 2d 28 | 53 50 29 09 09 20 20 20 |.l A6,-(|SP).. | |00005040| 20 20 20 20 20 3b 20 73 | 61 76 65 20 66 72 61 6d | ; s|ave fram| |00005050| 69 74 7a 20 70 6f 69 6e | 74 65 72 0d 20 20 20 20 |itz poin|ter. | |00005060| 20 20 20 20 6d 6f 76 65 | 2e 77 20 64 73 74 4f 75 | move|.w dstOu| |00005070| 72 73 2b 6f 53 74 72 69 | 64 65 28 41 36 29 2c 41 |rs+oStri|de(A6),A| |00005080| 36 20 20 20 3b 20 70 69 | 63 6b 20 75 70 20 64 65 |6 ; pi|ck up de| |00005090| 73 74 69 6e 61 74 69 6f | 6e 20 73 74 72 69 64 65 |stinatio|n stride| |000050a0| 0d 20 20 20 20 20 20 20 | 20 6d 6f 76 65 2e 6c 20 |. | move.l | |000050b0| 23 30 2c 44 36 09 09 20 | 20 20 20 20 20 20 20 3b |#0,D6.. | ;| |000050c0| 20 77 65 20 64 6f 20 6f | 6e 6c 79 20 41 4e 44 2e | we do o|nly AND.| |000050d0| 57 20 78 2c 44 36 20 2d | 2d 20 62 75 74 20 41 44 |W x,D6 -|- but AD| |000050e0| 44 2e 4c 20 44 36 2c 78 | 0d 0d 20 20 20 20 20 20 |D.L D6,x|.. | |000050f0| 20 20 63 6c 72 2e 77 20 | 2d 28 53 50 29 09 09 20 | clr.w |-(SP).. | |00005100| 20 20 20 20 20 20 20 3b | 20 72 65 73 65 72 76 65 | ;| reserve| |00005110| 20 72 6f 6f 6d 20 66 6f | 72 20 66 75 6e 63 74 69 | room fo|r functi| |00005120| 6f 6e 20 72 65 73 75 6c | 74 0d 20 20 20 20 20 20 |on resul|t. | |00005130| 20 20 62 73 72 20 4d 55 | 4c 43 48 4b 09 09 20 20 | bsr MU|LCHK.. | |00005140| 20 20 20 20 20 20 3b 20 | 67 6f 20 73 65 65 20 69 | ; |go see i| |00005150| 66 20 73 74 72 69 64 65 | 73 20 61 72 65 20 70 6f |f stride|s are po| |00005160| 77 65 72 73 20 6f 66 20 | 74 77 6f 0d 20 20 20 20 |wers of |two. | |00005170| 20 20 20 20 74 73 74 2e | 77 20 28 53 50 29 2b 09 | tst.|w (SP)+.| |00005180| 09 20 20 20 20 20 20 20 | 20 3b 20 63 61 6e 20 77 |. | ; can w| |00005190| 65 20 65 6c 69 6d 69 6e | 61 74 65 20 74 68 65 20 |e elimin|ate the | |000051a0| 68 6f 72 72 69 62 6c 65 | 20 4d 55 4c 55 73 3f 0d |horrible| MULUs?.| |000051b0| 20 20 20 20 20 20 20 20 | 62 6e 65 20 20 4e 4f 4d | |bne NOM| |000051c0| 55 4c 09 09 20 20 20 20 | 20 20 20 20 3b 20 79 65 |UL.. | ; ye| |000051d0| 73 21 20 20 68 75 72 72 | 61 79 21 0d 0d 3b 0d 3b |s! hurr|ay!..;.;| |000051e0| 20 6d 61 69 6e 20 6c 6f | 6f 70 3a 20 6d 61 70 20 | main lo|op: map | |000051f0| 74 68 65 20 73 65 71 75 | 65 6e 63 65 20 65 6c 65 |the sequ|ence ele| |00005200| 6d 65 6e 74 20 69 6e 74 | 6f 20 72 6f 77 73 20 61 |ment int|o rows a| |00005210| 6e 64 20 63 6f 6c 75 6d | 6e 73 2c 20 63 68 65 63 |nd colum|ns, chec| |00005220| 6b 20 69 66 20 69 74 27 | 73 20 69 6e 20 62 6f 75 |k if it'|s in bou| |00005230| 6e 64 73 0d 3b 20 61 6e | 64 20 73 6b 69 70 20 6f |nds.; an|d skip o| |00005240| 6e 20 69 66 20 69 74 27 | 73 20 6e 6f 74 2c 20 66 |n if it'|s not, f| |00005250| 6c 69 70 20 74 68 65 20 | 61 70 70 72 6f 70 72 69 |lip the |appropri| |00005260| 61 74 65 20 62 69 74 2c | 20 67 65 6e 65 72 61 74 |ate bit,| generat| |00005270| 65 20 74 68 65 20 6e 65 | 78 74 20 65 6c 65 6d 65 |e the ne|xt eleme| |00005280| 6e 74 20 69 6e 20 74 68 | 65 0d 3b 20 73 65 71 75 |nt in th|e.; sequ| |00005290| 65 6e 63 65 2c 20 61 6e | 64 20 6c 6f 6f 70 20 69 |ence, an|d loop i| |000052a0| 66 20 74 68 65 20 73 65 | 71 75 65 6e 63 65 20 69 |f the se|quence i| |000052b0| 73 6e 27 74 20 64 6f 6e | 65 2e 0d 3b 0d 0d 3b 0d |sn't don|e..;..;.| |000052c0| 3b 20 63 68 65 63 6b 20 | 74 68 65 20 72 6f 77 20 |; check |the row | |000052d0| 62 6f 75 6e 64 73 2e 09 | 20 6e 6f 74 65 20 74 68 |bounds..| note th| |000052e0| 61 74 20 77 65 20 63 61 | 6e 20 63 68 65 63 6b 20 |at we ca|n check | |000052f0| 74 68 65 20 72 6f 77 20 | 62 65 66 6f 72 65 20 65 |the row |before e| |00005300| 78 74 72 61 63 74 69 6e | 67 20 69 74 20 66 72 6f |xtractin|g it fro| |00005310| 6d 0d 3b 20 44 30 2c 20 | 69 67 6e 6f 72 69 6e 67 |m.; D0, |ignoring| |00005320| 20 74 68 65 20 62 69 74 | 73 20 61 74 20 74 68 65 | the bit|s at the| |00005330| 20 62 6f 74 74 6f 6d 20 | 6f 66 20 44 30 20 66 6f | bottom |of D0 fo| |00005340| 72 20 74 68 65 20 63 6f | 6c 75 6d 6e 73 2e 20 20 |r the co|lumns. | |00005350| 74 6f 20 67 65 74 20 74 | 68 65 73 65 20 62 69 74 |to get t|hese bit| |00005360| 73 0d 3b 20 74 6f 20 62 | 65 20 69 67 6e 6f 72 65 |s.; to b|e ignore| |00005370| 64 2c 20 77 65 20 68 61 | 64 20 74 6f 20 6d 61 6b |d, we ha|d to mak| |00005380| 65 20 41 34 20 6f 6e 65 | 2d 74 6f 6f 2d 68 69 67 |e A4 one|-too-hig| |00005390| 68 20 62 65 66 6f 72 65 | 20 73 68 69 66 74 69 6e |h before| shiftin| |000053a0| 67 20 69 74 20 75 70 20 | 74 6f 20 61 6c 69 67 6e |g it up |to align| |000053b0| 20 69 74 2e 0d 3b 0d 0d | 4c 4f 4f 50 3a 09 09 09 | it..;..|LOOP:...| |000053c0| 09 20 20 20 20 20 20 20 | 20 3b 20 68 65 72 65 20 |. | ; here | |000053d0| 66 6f 72 20 61 6e 6f 74 | 68 65 72 20 74 69 6d 65 |for anot|her time| |000053e0| 20 61 72 6f 75 6e 64 0d | 20 20 20 20 20 20 20 20 | around.| | |000053f0| 63 6d 70 2e 6c 20 41 34 | 2c 44 30 09 09 20 20 20 |cmp.l A4|,D0.. | |00005400| 20 20 20 20 20 3b 20 69 | 73 20 72 6f 77 20 69 6e | ; i|s row in| |00005410| 20 62 6f 75 6e 64 73 3f | 0d 20 20 20 20 20 20 20 | bounds?|. | |00005420| 20 62 67 65 2e 73 20 4e | 45 58 54 09 09 20 20 20 | bge.s N|EXT.. | |00005430| 20 20 20 20 20 3b 20 6e | 6f 3a 20 63 6c 69 70 20 | ; n|o: clip | |00005440| 74 68 69 73 0d 0d 3b 0d | 3b 20 6d 61 70 20 69 74 |this..;.|; map it| |00005450| 20 69 6e 74 6f 20 74 68 | 65 20 63 6f 6c 75 6d 6e | into th|e column| |00005460| 3b 20 63 68 65 63 6b 20 | 62 6f 75 6e 64 73 2e 09 |; check |bounds..| |00005470| 20 6e 6f 74 65 20 74 68 | 61 74 20 77 65 20 73 61 | note th|at we sa| |00005480| 76 65 20 74 68 69 73 20 | 63 68 65 63 6b 20 66 6f |ve this |check fo| |00005490| 72 20 73 65 63 6f 6e 64 | 3b 0d 3b 20 69 74 27 73 |r second|;.; it's| |000054a0| 20 61 20 6c 69 74 74 6c | 65 20 73 6c 6f 77 65 72 | a littl|e slower| |000054b0| 20 62 65 63 61 75 73 65 | 20 6f 66 20 74 68 65 20 | because| of the | |000054c0| 6d 6f 76 65 20 61 6e 64 | 20 6d 61 73 6b 2e 0d 3b |move and| mask..;| |000054d0| 0d 3b 20 63 68 75 63 6b | 20 73 61 67 65 6c 79 20 |.; chuck| sagely | |000054e0| 70 6f 69 6e 74 73 20 6f | 75 74 20 74 68 61 74 20 |points o|ut that | |000054f0| 77 68 65 6e 20 74 68 65 | 20 22 62 68 69 22 20 61 |when the| "bhi" a| |00005500| 74 20 74 68 65 20 65 6e | 64 20 6f 66 20 74 68 65 |t the en|d of the| |00005510| 20 6c 6f 6f 70 20 74 61 | 6b 65 73 2c 20 77 65 0d | loop ta|kes, we.| |00005520| 3b 20 6b 6e 6f 77 20 77 | 65 20 63 61 6e 20 69 67 |; know w|e can ig| |00005530| 6e 6f 72 65 20 74 68 65 | 20 61 62 6f 76 65 20 63 |nore the| above c| |00005540| 6f 6d 70 61 72 69 73 6f | 6e 2e 20 20 74 68 61 6e |ompariso|n. than| |00005550| 6b 73 2c 20 63 68 75 63 | 6b 2e 20 20 79 6f 75 27 |ks, chuc|k. you'| |00005560| 72 65 20 61 20 67 72 65 | 61 74 20 67 75 79 2e 0d |re a gre|at guy..| |00005570| 3b 0d 0d 4c 4f 4f 50 52 | 4f 57 3a 09 09 09 09 3b |;..LOOPR|OW:....;| |00005580| 20 68 65 72 65 20 77 68 | 65 6e 20 77 65 20 6b 6e | here wh|en we kn| |00005590| 6f 77 20 74 68 65 20 72 | 6f 77 20 6e 75 6d 62 65 |ow the r|ow numbe| |000055a0| 72 20 69 73 20 4f 4b 0d | 20 20 20 20 20 20 20 20 |r is OK.| | |000055b0| 6d 6f 76 65 2e 77 20 44 | 30 2c 44 36 09 09 20 20 |move.w D|0,D6.. | |000055c0| 20 20 20 20 20 20 3b 20 | 63 6f 70 79 20 74 68 65 | ; |copy the| |000055d0| 20 73 65 71 75 65 6e 63 | 65 20 65 6c 65 6d 65 6e | sequenc|e elemen| |000055e0| 74 0d 20 20 20 20 20 20 | 20 20 61 6e 64 2e 77 20 |t. | and.w | |000055f0| 44 35 2c 44 36 09 09 20 | 20 20 20 20 20 20 20 3b |D5,D6.. | ;| |00005600| 20 66 69 6e 64 20 6a 75 | 73 74 20 74 68 65 20 63 | find ju|st the c| |00005610| 6f 6c 75 6d 6e 20 6e 75 | 6d 62 65 72 0d 0d 20 20 |olumn nu|mber.. | |00005620| 20 20 20 20 20 20 63 6d | 70 2e 77 20 41 32 2c 44 | cm|p.w A2,D| |00005630| 36 09 09 20 20 20 20 20 | 20 20 20 3b 20 74 6f 6f |6.. | ; too| |00005640| 20 66 61 72 20 74 6f 20 | 74 68 65 20 72 69 67 68 | far to |the righ| |00005650| 74 3f 20 28 70 61 73 74 | 20 6f 43 6f 6c 73 3f 29 |t? (past| oCols?)| |00005660| 0d 20 20 20 20 20 20 20 | 20 62 67 74 2e 73 20 4e |. | bgt.s N| |00005670| 45 58 54 09 09 20 20 20 | 20 20 20 20 20 3b 20 79 |EXT.. | ; y| |00005680| 65 73 3a 20 73 6b 69 70 | 20 6f 75 74 0d 0d 20 20 |es: skip| out.. | |00005690| 20 20 20 20 20 20 6d 6f | 76 65 2e 6c 20 44 30 2c | mo|ve.l D0,| |000056a0| 44 34 09 09 20 20 20 20 | 20 20 20 20 3b 20 77 65 |D4.. | ; we| |000056b0| 20 6b 6e 6f 77 20 65 6c | 65 6d 65 6e 74 20 77 69 | know el|ement wi| |000056c0| 6c 6c 20 62 65 20 75 73 | 65 64 3b 20 63 6f 70 79 |ll be us|ed; copy| |000056d0| 20 69 74 0d 20 20 20 20 | 20 20 20 20 73 75 62 2e | it. | sub.| |000056e0| 77 20 44 36 2c 44 34 09 | 09 20 20 20 20 20 20 20 |w D6,D4.|. | |000056f0| 20 3b 20 72 65 6d 6f 76 | 65 20 63 6f 6c 75 6d 6e | ; remov|e column| |00005700| 27 73 20 62 69 74 73 0d | 20 20 20 20 20 20 20 20 |'s bits.| | |00005710| 6c 73 72 2e 6c 20 44 32 | 2c 44 34 09 09 20 20 20 |lsr.l D2|,D4.. | |00005720| 20 20 20 20 20 3b 20 73 | 68 69 66 74 20 64 6f 77 | ; s|hift dow| |00005730| 6e 20 74 6f 20 72 6f 77 | 2c 20 4e 4f 54 20 72 69 |n to row|, NOT ri| |00005740| 67 68 74 2d 6a 75 73 74 | 69 66 69 65 64 0d 0d 3b |ght-just|ified..;| |00005750| 0d 3b 20 67 65 74 20 74 | 68 65 20 73 6f 75 72 63 |.; get t|he sourc| |00005760| 65 20 62 79 74 65 2c 20 | 61 6e 64 20 62 69 74 20 |e byte, |and bit | |00005770| 6f 66 66 73 65 74 2e 20 | 20 44 34 20 68 61 73 20 |offset. | D4 has | |00005780| 74 68 65 20 62 69 74 20 | 6f 66 66 73 65 74 20 69 |the bit |offset i| |00005790| 6e 20 72 6f 77 73 2c 20 | 61 6e 64 0d 3b 20 44 36 |n rows, |and.; D6| |000057a0| 20 69 73 20 63 6f 6c 75 | 6d 6e 73 2e 0d 3b 0d 0d | is colu|mns..;..| |000057b0| 20 20 20 20 20 20 20 20 | 6d 6f 76 65 2e 77 20 41 | |move.w A| |000057c0| 35 2c 44 31 09 09 20 20 | 20 20 20 20 20 20 3b 20 |5,D1.. | ; | |000057d0| 67 65 74 20 74 68 65 20 | 73 74 72 69 64 65 20 70 |get the |stride p| |000057e0| 65 72 20 72 6f 77 20 28 | 69 6e 20 62 69 74 73 29 |er row (|in bits)| |000057f0| 0d 20 20 20 20 20 20 20 | 20 6d 75 6c 75 20 44 34 |. | mulu D4| |00005800| 2c 44 31 09 09 20 20 20 | 20 20 20 20 20 3b 20 73 |,D1.. | ; s| |00005810| 74 72 69 64 65 20 2a 20 | 72 6f 77 3b 20 66 69 6e |tride * |row; fin| |00005820| 64 20 73 6f 75 72 63 65 | 20 72 6f 77 27 73 20 6f |d source| row's o| |00005830| 66 66 73 65 74 20 69 6e | 20 62 69 74 73 0d 20 20 |ffset in| bits. | |00005840| 20 20 20 20 20 20 61 64 | 64 2e 6c 20 44 36 2c 44 | ad|d.l D6,D| |00005850| 31 09 09 20 20 20 20 20 | 20 20 20 3b 20 61 64 64 |1.. | ; add| |00005860| 20 69 6e 20 63 6f 6c 75 | 6d 6e 20 6f 66 66 73 65 | in colu|mn offse| |00005870| 74 20 28 62 69 74 73 29 | 0d 20 20 20 20 20 20 20 |t (bits)|. | |00005880| 20 61 64 64 2e 6c 20 41 | 30 2c 44 31 09 09 20 20 | add.l A|0,D1.. | |00005890| 20 20 20 20 20 20 3b 20 | 70 6c 75 73 20 62 61 73 | ; |plus bas| |000058a0| 65 20 6f 66 20 62 69 74 | 6d 61 70 20 28 62 69 74 |e of bit|map (bit| |000058b0| 73 20 5b 73 69 63 5d 29 | 0d 20 20 20 20 20 20 20 |s [sic])|. | |000058c0| 20 6d 6f 76 65 2e 62 20 | 44 31 2c 44 37 09 09 20 | move.b |D1,D7.. | |000058d0| 20 20 20 20 20 20 20 3b | 20 73 61 76 65 20 74 68 | ;| save th| |000058e0| 65 20 62 6f 74 74 6f 6d | 20 74 68 72 65 65 20 62 |e bottom| three b| |000058f0| 69 74 73 20 66 6f 72 20 | 74 68 65 20 42 54 53 54 |its for |the BTST| |00005900| 0d 20 20 20 20 20 20 20 | 20 6c 73 72 2e 6c 20 23 |. | lsr.l #| |00005910| 33 2c 44 31 09 09 20 20 | 20 20 20 20 20 20 3b 20 |3,D1.. | ; | |00005920| 77 68 69 6c 65 20 77 65 | 20 73 68 69 66 74 20 64 |while we| shift d| |00005930| 6f 77 6e 20 74 6f 20 61 | 20 77 6f 72 64 20 61 64 |own to a| word ad| |00005940| 64 72 65 73 73 0d 20 20 | 20 20 20 20 20 20 6d 6f |dress. | mo| |00005950| 76 65 2e 6c 20 44 31 2c | 41 33 09 09 20 20 20 20 |ve.l D1,|A3.. | |00005960| 20 20 20 20 3b 20 61 6e | 64 20 73 61 76 65 20 74 | ; an|d save t| |00005970| 68 61 74 20 66 6f 72 20 | 74 68 65 20 74 65 73 74 |hat for |the test| |00005980| 2c 20 74 6f 6f 0d 20 20 | 20 20 20 20 20 20 6e 6f |, too. | no| |00005990| 74 2e 62 20 44 37 09 09 | 20 20 20 20 20 20 20 20 |t.b D7..| | |000059a0| 3b 20 67 65 74 20 72 69 | 67 68 74 20 62 69 74 20 |; get ri|ght bit | |000059b0| 6e 75 6d 62 65 72 20 28 | 63 6f 6d 70 75 74 65 20 |number (|compute | |000059c0| 23 37 2d 44 37 29 0d 0d | 3b 0d 3b 20 66 69 6e 64 |#7-D7)..|;.; find| |000059d0| 20 74 68 65 20 64 65 73 | 74 69 6e 61 74 69 6f 6e | the des|tination| |000059e0| 20 62 69 74 20 61 64 64 | 72 65 73 73 20 61 6e 64 | bit add|ress and| |000059f0| 20 62 69 74 20 6f 66 66 | 73 65 74 0d 3b 0d 0d 20 | bit off|set.;.. | |00005a00| 20 20 20 20 20 20 20 6d | 6f 76 65 2e 77 20 41 36 | m|ove.w A6| |00005a10| 2c 44 31 09 09 20 20 20 | 20 20 20 20 20 3b 20 65 |,D1.. | ; e| |00005a20| 78 74 72 61 63 74 20 63 | 75 6e 6e 69 6e 67 6c 79 |xtract c|unningly| |00005a30| 20 68 69 64 64 65 6e 20 | 64 65 73 74 69 6e 61 74 | hidden |destinat| |00005a40| 69 6f 6e 20 73 74 72 69 | 64 65 0d 20 20 20 20 20 |ion stri|de. | |00005a50| 20 20 20 6d 75 6c 75 20 | 44 31 2c 44 34 09 09 20 | mulu |D1,D4.. | |00005a60| 20 20 20 20 20 20 20 3b | 20 73 74 72 69 64 65 2a | ;| stride*| |00005a70| 72 6f 77 20 6e 75 6d 62 | 65 72 20 3d 20 64 65 73 |row numb|er = des| |00005a80| 74 20 72 6f 77 27 73 20 | 6f 66 66 73 65 74 20 69 |t row's |offset i| |00005a90| 6e 20 62 69 74 73 0d 20 | 20 20 20 20 20 20 20 61 |n bits. | a| |00005aa0| 64 64 2e 6c 20 44 36 2c | 44 34 09 09 20 20 20 20 |dd.l D6,|D4.. | |00005ab0| 20 20 20 20 3b 20 61 64 | 64 20 69 6e 20 63 6f 6c | ; ad|d in col| |00005ac0| 75 6d 6e 20 62 69 74 20 | 6f 66 66 73 65 74 0d 20 |umn bit |offset. | |00005ad0| 20 20 20 20 20 20 20 61 | 64 64 2e 6c 20 41 31 2c | a|dd.l A1,| |00005ae0| 44 34 09 09 20 20 20 20 | 20 20 20 20 3b 20 61 6e |D4.. | ; an| |00005af0| 64 20 62 61 73 65 20 61 | 64 64 72 65 73 73 2c 20 |d base a|ddress, | |00005b00| 61 6c 73 6f 20 69 6e 20 | 62 69 74 73 0d 20 20 20 |also in |bits. | |00005b10| 20 20 20 20 20 6d 6f 76 | 65 2e 62 20 44 34 2c 44 | mov|e.b D4,D| |00005b20| 36 09 09 20 20 20 20 20 | 20 20 20 3b 20 73 65 74 |6.. | ; set| |00005b30| 20 61 73 69 64 65 20 74 | 68 65 20 62 69 74 20 64 | aside t|he bit d| |00005b40| 69 73 70 6c 61 63 65 6d | 65 6e 74 0d 20 20 20 20 |isplacem|ent. | |00005b50| 20 20 20 20 6c 73 72 2e | 6c 20 23 33 2c 44 34 09 | lsr.|l #3,D4.| |00005b60| 09 20 20 20 20 20 20 20 | 20 3b 20 6d 61 6b 65 20 |. | ; make | |00005b70| 61 20 62 79 74 65 20 64 | 69 73 70 6c 61 63 65 6d |a byte d|isplacem| |00005b80| 65 6e 74 0d 20 20 20 20 | 20 20 20 20 6e 6f 74 2e |ent. | not.| |00005b90| 62 20 44 36 09 09 20 20 | 20 20 20 20 20 20 3b 20 |b D6.. | ; | |00005ba0| 67 65 74 20 72 69 67 68 | 74 20 62 69 74 20 6e 75 |get righ|t bit nu| |00005bb0| 6d 62 65 72 20 28 63 6f | 6d 70 75 74 65 20 23 37 |mber (co|mpute #7| |00005bc0| 2d 44 36 29 0d 0d 20 20 | 20 20 20 20 20 20 62 74 |-D6).. | bt| |00005bd0| 73 74 20 44 37 2c 28 41 | 33 29 09 09 20 20 20 20 |st D7,(A|3).. | |00005be0| 20 20 20 20 3b 20 74 65 | 73 74 20 74 68 65 20 44 | ; te|st the D| |00005bf0| 37 74 68 20 62 69 74 20 | 6f 66 20 73 6f 75 72 63 |7th bit |of sourc| |00005c00| 65 20 62 79 74 65 0d 20 | 20 20 20 20 20 20 20 6d |e byte. | m| |00005c10| 6f 76 65 2e 6c 20 44 34 | 2c 41 33 09 09 20 20 20 |ove.l D4|,A3.. | |00005c20| 20 20 20 20 20 3b 20 70 | 6f 69 6e 74 20 74 6f 20 | ; p|oint to | |00005c30| 74 61 72 67 65 74 20 62 | 79 74 65 20 28 64 6f 6e |target b|yte (don| |00005c40| 27 74 20 6c 6f 73 65 20 | 43 43 20 66 72 6f 6d 20 |'t lose |CC from | |00005c50| 62 74 73 74 29 0d 20 20 | 20 20 20 20 20 20 62 6e |btst). | bn| |00005c60| 65 2e 73 20 53 45 54 4f | 4e 09 09 20 20 20 20 20 |e.s SETO|N.. | |00005c70| 20 20 20 3b 20 69 66 20 | 6f 6e 2c 20 67 6f 20 73 | ; if |on, go s| |00005c80| 65 74 20 64 65 73 74 69 | 6e 61 74 69 6f 6e 20 6f |et desti|nation o| |00005c90| 6e 0d 20 20 20 20 20 20 | 20 20 62 63 6c 72 20 44 |n. | bclr D| |00005ca0| 36 2c 28 41 33 29 09 09 | 20 20 20 20 20 20 20 20 |6,(A3)..| | |00005cb0| 3b 20 65 6c 73 65 20 63 | 6c 65 61 72 20 64 65 73 |; else c|lear des| |00005cc0| 74 69 6e 61 74 69 6f 6e | 20 62 69 74 0d 0d 3b 0d |tination| bit..;.| |00005cd0| 3b 20 66 69 6e 64 20 74 | 68 65 20 6e 65 78 74 20 |; find t|he next | |00005ce0| 73 65 71 75 65 6e 63 65 | 20 65 6c 65 6d 65 6e 74 |sequence| element| |00005cf0| 2e 20 20 73 65 65 20 6b | 6e 75 74 68 2c 20 76 6f |. see k|nuth, vo| |00005d00| 6c 20 69 69 2e 2c 20 70 | 61 67 65 20 32 39 20 66 |l ii., p|age 29 f| |00005d10| 6f 72 20 73 6b 65 74 63 | 68 79 20 64 65 74 61 69 |or sketc|hy detai| |00005d20| 6c 73 2e 0d 3b 0d 0d 4e | 45 58 54 3a 09 09 09 09 |ls..;..N|EXT:....| |00005d30| 20 20 20 20 20 20 20 20 | 3b 20 6a 75 6d 70 20 68 | |; jump h| |00005d40| 65 72 65 20 69 66 20 44 | 30 20 6e 6f 74 20 69 6e |ere if D|0 not in| |00005d50| 20 62 6f 75 6e 64 73 0d | 20 20 20 20 20 20 20 20 | bounds.| | |00005d60| 6c 73 72 2e 6c 20 23 31 | 2c 44 30 09 09 20 20 20 |lsr.l #1|,D0.. | |00005d70| 20 20 20 20 20 3b 20 73 | 6c 69 64 65 20 6f 6e 65 | ; s|lide one| |00005d80| 20 62 69 74 20 74 6f 20 | 74 68 65 20 72 69 67 68 | bit to |the righ| |00005d90| 74 0d 20 20 20 20 20 20 | 20 20 62 68 69 2e 73 20 |t. | bhi.s | |00005da0| 4c 4f 4f 50 52 4f 57 09 | 09 20 20 20 20 20 20 20 |LOOPROW.|. | |00005db0| 20 3b 20 69 66 20 6e 6f | 20 63 61 72 72 79 20 6f | ; if no| carry o| |00005dc0| 75 74 2c 20 62 75 74 20 | 6e 6f 74 20 7a 65 72 6f |ut, but |not zero| |00005dd0| 2c 20 6c 6f 6f 70 0d 0d | 20 20 20 20 20 20 20 20 |, loop..| | |00005de0| 65 6f 72 2e 6c 20 44 33 | 2c 44 30 09 09 20 20 20 |eor.l D3|,D0.. | |00005df0| 20 20 20 20 20 3b 20 66 | 6c 69 70 20 6d 61 67 69 | ; f|lip magi| |00005e00| 63 20 62 69 74 73 20 61 | 70 70 72 6f 70 72 69 61 |c bits a|ppropria| |00005e10| 74 65 20 74 6f 20 74 68 | 65 20 62 69 74 77 69 64 |te to th|e bitwid| |00005e20| 74 68 20 77 65 20 77 61 | 6e 74 2e 2e 2e 0d 20 20 |th we wa|nt.... | |00005e30| 20 20 20 20 20 20 63 6d | 70 2e 6c 20 44 33 2c 44 | cm|p.l D3,D| |00005e40| 30 09 09 20 20 20 20 20 | 20 20 20 3b 20 2e 2e 2e |0.. | ; ...| |00005e50| 62 75 74 20 68 61 73 20 | 74 68 69 73 20 62 72 6f |but has |this bro| |00005e60| 75 67 68 74 20 75 73 20 | 74 6f 20 73 71 75 61 72 |ught us |to squar| |00005e70| 65 20 31 3f 0d 20 20 20 | 20 20 20 20 20 62 6e 65 |e 1?. | bne| |00005e80| 2e 73 20 4c 4f 4f 50 09 | 09 20 20 20 20 20 20 20 |.s LOOP.|. | |00005e90| 20 3b 20 69 66 20 6e 6f | 74 2c 20 6c 6f 6f 70 20 | ; if no|t, loop | |00005ea0| 62 61 63 6b 3b 20 65 6c | 73 65 2e 2e 2e 0d 0d 20 |back; el|se..... | |00005eb0| 20 20 20 20 20 20 20 62 | 72 61 20 44 4f 4e 45 09 | b|ra DONE.| |00005ec0| 09 20 20 20 20 20 20 20 | 20 3b 20 2e 2e 2e 77 65 |. | ; ...we| |00005ed0| 27 72 65 20 66 69 6e 69 | 73 68 65 64 0d 0d 53 45 |'re fini|shed..SE| |00005ee0| 54 4f 4e 3a 0d 20 20 20 | 20 20 20 20 20 62 73 65 |TON:. | bse| |00005ef0| 74 20 44 36 2c 28 41 33 | 29 09 09 20 20 20 20 20 |t D6,(A3|).. | |00005f00| 20 20 20 3b 20 73 6f 75 | 72 63 65 20 62 69 74 20 | ; sou|rce bit | |00005f10| 77 61 73 20 6f 6e 3a 20 | 73 65 74 20 64 65 73 74 |was on: |set dest| |00005f20| 69 6e 61 74 69 6f 6e 20 | 6f 6e 0d 0d 20 20 20 20 |ination |on.. | |00005f30| 20 20 20 20 3b 20 63 6f | 70 79 20 6f 66 20 61 62 | ; co|py of ab| |00005f40| 6f 76 65 20 63 6f 64 65 | 2c 20 73 74 6f 6c 65 6e |ove code|, stolen| |00005f50| 20 66 6f 72 20 69 6e 6c | 69 6e 65 20 73 70 65 65 | for inl|ine spee| |00005f60| 64 20 2d 2d 20 73 6f 72 | 72 79 2e 0d 20 20 20 20 |d -- sor|ry.. | |00005f70| 20 20 20 20 6c 73 72 2e | 6c 20 23 31 2c 44 30 09 | lsr.|l #1,D0.| |00005f80| 09 20 20 20 20 20 20 20 | 20 3b 20 73 6c 69 64 65 |. | ; slide| |00005f90| 20 6f 6e 65 20 62 69 74 | 20 74 6f 20 74 68 65 20 | one bit| to the | |00005fa0| 72 69 67 68 74 0d 20 20 | 20 20 20 20 20 20 62 68 |right. | bh| |00005fb0| 69 2e 73 20 4c 4f 4f 50 | 52 4f 57 09 09 20 20 20 |i.s LOOP|ROW.. | |00005fc0| 20 20 20 20 20 3b 20 69 | 66 20 6e 6f 20 63 61 72 | ; i|f no car| |00005fd0| 72 79 20 6f 75 74 2c 20 | 62 75 74 20 6e 6f 74 20 |ry out, |but not | |00005fe0| 7a 65 72 6f 2c 20 6c 6f | 6f 70 0d 20 20 20 20 20 |zero, lo|op. | |00005ff0| 20 20 20 65 6f 72 2e 6c | 20 44 33 2c 44 30 09 09 | eor.l| D3,D0..| |00006000| 20 20 20 20 20 20 20 20 | 3b 20 66 6c 69 70 20 6d | |; flip m| |00006010| 61 67 69 63 20 62 69 74 | 73 2e 2e 2e 0d 20 20 20 |agic bit|s.... | |00006020| 20 20 20 20 20 63 6d 70 | 2e 6c 20 44 33 2c 44 30 | cmp|.l D3,D0| |00006030| 09 09 20 20 20 20 20 20 | 20 20 3b 20 2e 2e 2e 62 |.. | ; ...b| |00006040| 75 74 20 68 61 73 20 74 | 68 69 73 20 62 72 6f 75 |ut has t|his brou| |00006050| 67 68 74 20 75 73 20 74 | 6f 20 73 71 75 61 72 65 |ght us t|o square| |00006060| 20 31 3f 0d 20 20 20 20 | 20 20 20 20 62 6e 65 2e | 1?. | bne.| |00006070| 73 20 4c 4f 4f 50 09 09 | 20 20 20 20 20 20 20 20 |s LOOP..| | |00006080| 3b 20 69 66 20 6e 6f 74 | 2c 20 6c 6f 6f 70 20 62 |; if not|, loop b| |00006090| 61 63 6b 3b 20 65 6c 73 | 65 20 66 61 6c 6c 20 74 |ack; els|e fall t| |000060a0| 68 72 6f 75 67 68 0d 0d | 0d 3b 0d 3b 20 68 65 72 |hrough..|.;.; her| |000060b0| 65 20 77 68 65 6e 20 77 | 65 27 72 65 20 64 6f 6e |e when w|e're don| |000060c0| 65 3b 20 74 68 65 20 28 | 30 2c 30 29 20 70 6f 69 |e; the (|0,0) poi| |000060d0| 6e 74 20 68 61 73 20 6e | 6f 74 20 62 65 65 6e 20 |nt has n|ot been | |000060e0| 64 6f 6e 65 20 79 65 74 | 2e 20 20 74 68 69 73 20 |done yet|. this | |000060f0| 69 73 0d 3b 20 72 65 61 | 6c 6c 79 20 74 68 65 20 |is.; rea|lly the | |00006100| 28 30 2c 6c 65 66 74 20 | 6d 61 72 67 69 6e 29 20 |(0,left |margin) | |00006110| 70 6f 69 6e 74 2e 20 20 | 77 65 20 61 6c 73 6f 20 |point. |we also | |00006120| 6a 75 6d 70 20 68 65 72 | 65 20 66 72 6f 6d 20 61 |jump her|e from a| |00006130| 6e 6f 74 68 65 72 20 63 | 6f 70 79 20 6c 6f 6f 70 |nother c|opy loop| |00006140| 2e 0d 3b 0d 0d 44 4f 4e | 45 3a 0d 20 20 20 20 20 |..;..DON|E:. | |00006150| 20 20 20 6d 6f 76 65 2e | 6c 20 28 53 50 29 2b 2c | move.|l (SP)+,| |00006160| 41 36 09 09 20 20 20 20 | 20 20 20 20 3b 20 72 65 |A6.. | ; re| |00006170| 73 74 6f 72 65 20 73 74 | 61 63 6b 20 66 72 61 6d |store st|ack fram| |00006180| 65 20 70 6f 69 6e 74 65 | 72 0d 0d 20 20 20 20 20 |e pointe|r.. | |00006190| 20 20 20 6d 6f 76 65 2e | 77 20 73 72 63 4f 75 72 | move.|w srcOur| |000061a0| 73 2b 6f 4c 62 69 74 73 | 28 41 36 29 2c 44 30 20 |s+oLbits|(A6),D0 | |000061b0| 20 20 20 3b 20 70 69 63 | 6b 20 75 70 20 62 69 74 | ; pic|k up bit| |000061c0| 20 6f 66 66 73 65 74 20 | 6f 66 20 6c 65 66 74 20 | offset |of left | |000061d0| 6d 61 72 67 69 6e 0d 20 | 20 20 20 20 20 20 20 6d |margin. | m| |000061e0| 6f 76 65 2e 77 20 64 73 | 74 4f 75 72 73 2b 6f 4c |ove.w ds|tOurs+oL| |000061f0| 62 69 74 73 28 41 36 29 | 2c 44 31 20 20 20 20 3b |bits(A6)|,D1 ;| |00006200| 20 61 6e 64 20 64 69 74 | 74 6f 20 66 6f 72 20 74 | and dit|to for t| |00006210| 61 72 67 65 74 0d 20 20 | 20 20 20 20 20 20 6e 6f |arget. | no| |00006220| 74 2e 62 20 44 30 09 09 | 20 20 20 20 20 20 20 20 |t.b D0..| | |00006230| 3b 20 66 6c 69 70 20 74 | 6f 20 6e 75 6d 62 65 72 |; flip t|o number| |00006240| 20 74 68 65 20 62 69 74 | 73 20 66 6f 72 20 36 38 | the bit|s for 68| |00006250| 30 30 30 0d 20 20 20 20 | 20 20 20 20 6e 6f 74 2e |000. | not.| |00006260| 62 20 44 31 09 09 20 20 | 20 20 20 20 20 20 3b 20 |b D1.. | ; | |00006270| 64 69 74 74 6f 0d 0d 3b | 20 61 6c 74 65 72 6e 61 |ditto..;| alterna| |00006280| 74 65 2c 20 6c 61 74 65 | 20 65 6e 74 72 61 6e 63 |te, late| entranc| |00006290| 65 2c 20 77 68 65 6e 20 | 53 43 52 45 45 4e 20 72 |e, when |SCREEN r| |000062a0| 6f 75 74 69 6e 65 20 68 | 61 73 20 61 6c 72 65 61 |outine h|as alrea| |000062b0| 64 79 20 73 65 74 20 75 | 70 20 44 30 20 61 6e 64 |dy set u|p D0 and| |000062c0| 20 44 31 20 28 69 74 20 | 64 6f 65 73 6e 27 74 20 | D1 (it |doesn't | |000062d0| 77 61 6e 74 20 74 68 65 | 20 62 69 74 0d 3b 20 6f |want the| bit.; o| |000062e0| 66 66 73 65 74 20 6e 65 | 67 61 74 65 64 29 2e 0d |ffset ne|gated)..| |000062f0| 0d 44 4f 4e 45 41 3a 09 | 09 09 09 20 20 20 20 20 |.DONEA:.|... | |00006300| 20 20 20 3b 20 6c 61 6e | 64 20 68 65 72 65 20 77 | ; lan|d here w| |00006310| 69 74 68 20 44 30 2c 20 | 44 31 20 73 65 74 0d 20 |ith D0, |D1 set. | |00006320| 20 20 20 20 20 20 20 6d | 6f 76 65 2e 6c 20 73 72 | m|ove.l sr| |00006330| 63 4f 75 72 73 2b 6f 42 | 61 73 65 28 41 36 29 2c |cOurs+oB|ase(A6),| |00006340| 41 30 20 20 20 20 20 3b | 20 73 65 74 20 75 70 20 |A0 ;| set up | |00006350| 62 61 73 65 20 70 6f 69 | 6e 74 65 72 20 66 6f 72 |base poi|nter for| |00006360| 20 6f 75 72 20 73 6f 75 | 72 63 65 20 62 69 74 73 | our sou|rce bits| |00006370| 0d 20 20 20 20 20 20 20 | 20 6d 6f 76 65 2e 6c 20 |. | move.l | |00006380| 64 73 74 4f 75 72 73 2b | 6f 42 61 73 65 28 41 36 |dstOurs+|oBase(A6| |00006390| 29 2c 41 31 20 20 20 20 | 20 3b 20 61 6e 64 20 70 |),A1 | ; and p| |000063a0| 6f 69 6e 74 65 72 20 66 | 6f 72 20 74 61 72 67 65 |ointer f|or targe| |000063b0| 74 0d 0d 20 20 20 20 20 | 20 20 20 62 73 65 74 20 |t.. | bset | |000063c0| 44 31 2c 28 41 31 29 09 | 09 20 20 20 20 20 20 20 |D1,(A1).|. | |000063d0| 20 3b 20 61 73 73 75 6d | 65 20 73 6f 75 72 63 65 | ; assum|e source| |000063e0| 20 62 69 74 20 77 61 73 | 20 6f 6e 3b 20 73 65 74 | bit was| on; set| |000063f0| 20 74 61 72 67 65 74 0d | 20 20 20 20 20 20 20 20 | target.| | +--------+-------------------------+-------------------------+--------+--------+ Only 25.0 KB of data is shown above.